<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>
  <head>
    <title>Java bytecode constraints</title>
    <link rel=stylesheet href="java-constraints.css">
  </head>

  <body>
    <h1>
      Bytecode constraints
    </h1>

    <p>
      From the point of view of a piece of code written in the Java
      programming language or targeted in the same way to <code>.class</code>
      files, the Dalvik VM aims to behave in a way
      that is fully consistent with the language's definition.
      That is, the code running in Dalvik will behave the same as it
      would have running in any other virtual machine. This includes
      verification failures.
      The Dx/Dalvik system will check roughly the same
      constraints that any other VM would, except as noted in the file
      <a href="verifier.html">verifier.html</a>. The following table briefly
      lists all Dx/Dalvik verification constraints together their analogs
      from the book <i>The Java<super>TM</super> Language Specification</i>,
      second edition. In the numbering scheme, the first three
      elements refer to the specification chapter, the fourth one to the
      bullet inside that chapter. The failure mode specifies whether the
      constraint will fail during the Dx conversion or during verification in
      the VM itself.
    </p>
  
    <h2>
      Static constraints
    </h2>

    <p>
    Static constraints are constraints on individual elements of the bytecode.
    They usually can be checked without employing control or data-flow analysis
    techniques.
    </p>
    
    <table>
      <tr>
        <th>
          Identifier
        </th>
        
        <th>
          Description
        </th>
        
        <th>
          Spec equivalent
        </th>
        
        <th>
          Failure mode
        </th>
      </tr>
  
      <tr>
        <td>
          A1
        </td>
        
        <td>
          The <code>code</code> array must not be empty. 
        </td>
  
        <td>
          4.8.1.1
        </td>
  
        <td>
          DX
        </td>
      </tr>
  
      <tr>
        <td>
          A2
        </td>
        
        <td>
          The <code>code</code> array must not be larger than 65535 bytes. 
        </td>
  
        <td>
          4.8.1.2
        </td>
  
        <td>
          DX
        </td>
      </tr>
      
      <tr>
        <td>
          A3
        </td>
        
        <td>
          The first opcode in <code>code</code> array must have index
          <code>0</code>.
        </td>
  
        <td>
          4.8.1.3
        </td>
  
        <td>
          DX
        </td>
      </tr>
      
      <tr>
        <td>
          A4
        </td>
        
        <td>
          The <code>code</code> array must only contain valid opcodes.
        </td>
  
        <td>
          4.8.1.4
        </td>
  
        <td>
          DX
        </td>
      </tr>
      
      <tr>
        <td>
          A5
        </td>
        
        <td>
          The index of instruction <code>n+1</code> must equal the index of
          instruction <code>n</code> plus the length of instruction
          <code>n</code>, taking into account a possible <code>wide</code>
          instruction. Opcodes modified by a <code>wide</code> instruction must
          not be directly reachable. 
        </td>
  
        <td>
          4.8.1.5
        </td>
  
        <td>
          DX
        </td>
      </tr>
      
      <tr>
        <td>
          A6
        </td>
        
        <td>
          The last instruction in <code>code</code> array must end at index
          <code>code_length-1</code>.   
        </td>
  
        <td>
          4.8.1.6
        </td>
  
        <td>
          DX
        </td>
      </tr>
      
      <tr>
        <td>
          A7
        </td>
        
        <td>
          All jump and branch targets must be opcodes within the same method.
          Opcodes modified by a <code>wide</code> instruction must not be
          directly reachable via a jump or branch instruction. 
        </td>
  
        <td>
          4.8.1.7
        </td>
  
        <td>
          DX
        </td>
      </tr>
      
      <tr>
        <td>
          A8
        </td>
        
        <td>
          All targets of a <code>tableswitch</code> instruction must be opcodes
          within the same method. Upper and lower bounds must be consistent.
          Opcodes modified by a <code>wide</code> instruction must not be
          directly reachable via a <code>tableswitch</code> instruction. 
        </td>
  
        <td>
          4.8.1.8
        </td>
  
        <td>
          DX
        </td>
      </tr>
          
      <tr>
        <td>
          A9
        </td>
        
        <td>
          All targets of a <code>lookupswitch</code> instruction must be opcodes
          within the same method. Its table must be consistent and sorted
          low-to-high. Opcodes modified by a <code>wide</code> instruction must
          not be directly reachable via a <code>lookupswitch</code> instruction. 
        </td>
  
        <td>
          4.8.1.9
        </td>
  
        <td>
          DX
        </td>
      </tr>
      
      <tr>
        <td>
          A10
        </td>
        
        <td>
          The operands of <code>ldc</code> and <code>ldc_w</code> instructions
          must be valid indices into the constant pool. The respective entries
          must be of type <code>CONSTANT_Integer</code>,
          <code>CONSTANT_Float</code>, or <code>CONSTANT_String</code>. 
        </td>
  
        <td>
          4.8.1.10
        </td>
  
        <td>
          DX
        </td>
      </tr>
      
      <tr>
        <td>
          A11
        </td>
        
        <td>
          The operands of <code>ldc2_w</code> instructions must be valid indices
          into the constant pool. The respective entries must be of type
          <code>CONSTANT_Long</code> or <code>CONSTANT_Double</code>. The
          subsequent constant pool entry must be valid and remain unused.
        </td>
  
        <td>
          4.8.1.11
        </td>
  
        <td>
          DX
        </td>
      </tr>
      
      <tr>
        <td>
          A12
        </td>
        
        <td>
          The Operands of <code>get&lt;kind&gt;</code> and
          <code>put&lt;kind&gt;</code> instructions must be valid indices into
          constant pool. The respective entries must be of type
          <code>CONSTANT_Fieldref</code>.
        </td>
  
        <td>
          4.8.1.12
        </td>
  
        <td>
          DX
        </td>
      </tr>
      
      <tr>
        <td>
          A13
        </td>
        
        <td>
          The first two operands of <code>invokevirtual</code>,
          <code>invokespecial</code>, and <code>invokestatic</code> must form a
          valid 16-bit index into the constant pool. The respective entries must
          be of type <code>CONSTANT_Methodref</code>.
        </td>
  
        <td>
          4.8.1.13
        </td>
  
        <td>
          DX
        </td>
      </tr>
      
      <tr>
        <td>
          A14
        </td>
        
        <td>
          Methods whose names start with '<' must only be invoked implicitly by
          the VM, not by class file code. The only exception is the instance
          initializer, which may be invoked by <code>invokespecial</code>.
        </td>
  
        <td>
          4.8.1.14
        </td>
  
        <td>
          DX
        </td>
      </tr>
      
      <tr>
        <td>
          A15
        </td>
        
        <td>
          The first two operands of <code>invokeinterface</code> must form a
          valid 16-bit index into the constant pool. The entry must be of type
          <code>CONSTANT_Interface_Methodref</code>. The third operand must
          specify number of local variables and the fourth operand must always
          be zero.
        </td>
  
        <td>
          4.8.1.15
        </td>
  
        <td>
          DX
        </td>
      </tr>
  
      <tr>
        <td>
          A16
        </td>
        
        <td>
          The operands of <code>instanceof</code>, <code>checkcast</code>,
          <code>new</code>, and <code>anewarray</code> instructions must
          be a valid index into the constant pool. The first two operands of
          <code>multianewarray</code> instruction must form a valid 16-bit index
          into the constant pool. All respective entries must be of type
          <code>CONSTANT_Class</code>.
        </td>
  
        <td>
          4.8.1.16
        </td>
  
        <td>
          DX
        </td>
      </tr>
  
     <tr>
        <td>
          A17
        </td>
        
        <td>
          The dimensions of an array created by <code>anewarray</code>
          instructions must be less than <code>256</code>.
        </td>
  
        <td>
          4.8.1.17
        </td>
  
        <td>
          DX
        </td>
      </tr>
  
      <tr>
        <td>
          A18
        </td>
        
        <td>
          The <code>new</code> instruction must not reference array classes,
          interfaces, or abstract classes.
        </td>
  
        <td>
          4.8.1.18
        </td>
  
        <td>
          DX
        </td>
      </tr>
  
      <tr>
        <td>
          A19
        </td>
        
        <td>
          The type referenced by a <code>multinewarray</code> instruction must
          have at least as many dimensions as specified in the instruction. The
          dimensions operand must not be <code>0</code>  
        </td>
  
        <td>
          4.8.1.19
        </td>
  
        <td>
          DX
        </td>
      </tr>
  
      <tr>
        <td>
          A20
        </td>
        
        <td>
          The type referenced by a <code>newarray</code> instruction must be a
          valid, non-reference type.
        </td>
  
        <td>
          4.8.1.20
        </td>
  
        <td>
          DX
        </td>
      </tr>
  
      <tr>
        <td>
          A21
        </td>
        
        <td>
          The index operand of instructions explicitly referencing single-width
          local variables must be non-negative and smaller than
          <code>max_locals</code>.
        </td>
  
        <td>
          4.8.1.21
        </td>
  
        <td>
          DX
        </td>
      </tr>
  
      <tr>
        <td>
          A22
        </td>
        
        <td>
          The index operand of instructions implicitly referencing single-width
          local variables must be non-negative and smaller than
          <code>max_locals</code>.
        </td>
  
        <td>
          4.8.1.22
        </td>
  
        <td>
          DX
        </td>
      </tr>
  
      <tr>
        <td>
          A23
        </td>
        
        <td>
          The index operand of instructions explicitly referencing double-width
          local variables must be non-negative and smaller than
          <code>max_locals-1</code>.
        </td>
  
        <td>
          4.8.1.23
        </td>
  
        <td>
          DX
        </td>
      </tr>
  
      <tr>
        <td>
          A24
        </td>
        
        <td>
          The index operand of instructions implicitly referencing double-width
          local variables must be non-negative and smaller than
          <code>max_locals-1</code>.
        </td>
  
        <td>
          4.8.1.24
        </td>
  
        <td>
          DX
        </td>
      </tr>
  
      <tr>
        <td>
          A25
        </td>
        
        <td>
          The index operand of <code>wide</code> instructions explicitly
          referencing single-width local variables must be non-negative and
          smaller than <code>max_locals</code>.
        </td>
  
        <td>
          4.8.1.25
        </td>
  
        <td>
          DX
        </td>
      </tr>
  
      <tr>
        <td>
          A26
        </td>
        
        <td>
          The index operand of <code>wide</code> instructions explicitly
          referencing double-width local variables must be non-negative and
          smaller than <code>max_locals-1</code>.
        </td>
  
        <td>
          4.8.1.25
        </td>
  
        <td>
          DX
        </td>
      </tr>
    </table>
      
    <h2>
      Structural constraints
    </h2>
  
    <p>
    Structural constraints are constraints on relationships between several
    elements of the bytecode. They usually can't be checked without employing
    control or data-flow analysis techniques.
    </p>

    <table>
      <tr>
        <th>
          Identifier
        </th>
        
        <th>
          Description
        </th>
        
        <th>
          Spec equivalent
        </th>
        
        <th>
          Failure mode
        </th>
      </tr>
  
      <tr>
        <td>
          B1
        </td>
        
        <td>
          The number and types of arguments (operands and local variables) must
          always match the instruction.
        </td>
  
        <td>
          4.8.2.1
        </td>
  
        <td>
          DX
        </td>
      </tr>
      
      <tr>
        <td>
          B2
        </td>
        
        <td>
          The operand stack must have the same depth for all executions paths
          leading to an instruction. 
        </td>
  
        <td>
          4.8.2.2
        </td>
  
        <td>
          DX
        </td>
      </tr>
  
      <tr>
        <td>
          B3
        </td>
        
        <td>
          Local variable pairs must never be broken up. 
        </td>
  
        <td>
          4.8.2.3
        </td>
  
        <td>
          DX
        </td>
      </tr>
  
      <tr>
        <td>
          B4
        </td>
        
        <td>
          A local variable (or pair) has to be assigned first before it can be
          read.
        </td>
  
        <td>
          4.8.2.4
        </td>
  
        <td>
          DX
        </td>
      </tr>
  
      <tr>
        <td>
          B5
        </td>
        
        <td>
          The operand stack must never grow beyond <code>max_stack</code>. 
        </td>
  
        <td>
          4.8.2.5
        </td>
  
        <td>
          DX
        </td>
      </tr>
  
      <tr>
        <td>
          B6
        </td>
        
        <td>
          The operand stack must never underflow. 
        </td>
  
        <td>
          4.8.2.6
        </td>
  
        <td>
          DX
        </td>
      </tr>
  
      <tr>
        <td>
          B7
        </td>
        
        <td>
          An <code>invokespecial</code> instruction must only invoke an instance
          initializer or a method in the current class or one of its
          superclasses. 
        </td>
  
        <td>
          4.8.2.7
        </td>
  
        <td>
          VM
        </td>
      </tr>
  
      <tr>
        <td>
          B8
        </td>
        
        <td>
          An instance initializer must only be invoked on an uninitialized
          instance residing on the operand stack. 
        </td>
  
        <td>
          4.8.2.8
        </td>
  
        <td>
          VM
        </td>
      </tr>
  
      <tr>
        <td>
          B9
        </td>
        
        <td>
          Instance methods may only be invoked on and instance fields may only
          be accessed on already initialized instances.   
        </td>
  
        <td>
          4.8.2.9
        </td>
  
        <td>
          VM
        </td>
      </tr>
  
      <tr>
        <td>
          B10
        </td>
        
        <td>
           The must be no backwards branches with uninitialized instances on the
           operand stack or in local variables. There must be no code protected
           by an exception handler that contains local variables with
           uninitialized instances.
        </td>
  
        <td>
          4.8.2.10
        </td>
  
        <td>
          DX
        </td>
      </tr>
  
      <tr>
        <td>
          B11
        </td>
        
        <td>
           An instance initializer must call another instance initializer (same
           class or superclass) before any instance members can be accessed.
           Exceptions are non-inherited instance fields, which can be assigned
           before calling another initializer, and the <code>Object</code> class
           in general.   
        </td>
  
        <td>
          4.8.2.11
        </td>
  
        <td>
          VM
        </td>
      </tr>
  
      <tr>
        <td>
          B12
        </td>
        
        <td>
           All actual method arguments must be assignment-compatible with formal
           arguments.    
        </td>
  
        <td>
          4.8.2.12
        </td>
  
        <td>
          VM
        </td>
      </tr>
  
      <tr>
        <td>
          B13
        </td>
        
        <td>
           For each instance method invocation, the actual instance must be
           assignment-compatible with the class or interface specified in the
           instruction.
        </td>
  
        <td>
          4.8.2.13
        </td>
  
        <td>
          VM
        </td>
      </tr>
  
      <tr>
        <td>
          B14
        </td>
        
        <td>
           A returns instruction must match its method's return type.   
        </td>
  
        <td>
          4.8.2.14
        </td>
  
        <td>
          VM
        </td>
      </tr>
  
      <tr>
        <td>
          B15
        </td>
        
        <td>
           When accessing protected members of a superclass, the actual type of
           the instance being accessed must be either the current class or one
           of its subclasses.
        </td>
  
        <td>
          4.8.2.15
        </td>
  
        <td>
          VM
        </td>
      </tr>
  
     <tr>
        <td>
          B16
        </td>
        
        <td>
           The type of a value stored into a static field must be
           assignment-compatible with or convertible to the field's type.
        </td>
  
        <td>
          4.8.2.16
        </td>
  
        <td>
          VM
        </td>
      </tr>
  
      <tr>
        <td>
          B17
        </td>
        
        <td>
           The type of a value stored into a field must be assignment-compatible
           with or convertible to the field's type.
        </td>
  
        <td>
          4.8.2.17
        </td>
  
        <td>
          VM
        </td>
      </tr>
  
      <tr>
        <td>
          B18
        </td>
        
        <td>
           The type of every value stored into an array must be
           assignment-compatible with the array's component type.
        </td>
  
        <td>
          4.8.2.18
        </td>
  
        <td>
          VM
        </td>
      </tr>
  
      <tr>
        <td>
          B19
        </td>
        
        <td>
           The operand of an <code>athrow</code> instruction must be
           assignment-compatible with <code>java.lang.Throwable</code>. 
        </td>
  
        <td>
          4.8.2.19
        </td>
  
        <td>
          VM
        </td>
      </tr>
  
      <tr>
        <td>
          B20
        </td>
        
        <td>
           The last reachable instruction of a method must either be a backwards
           jump or branch, a return, or an <code>athrow</code> instruction. It
           must not be possible to leave the <code>code</code> array at the
           bottom.
        </td>
  
        <td>
          4.8.2.20
        </td>
  
        <td>
          VM
        </td>
      </tr>
  
      <tr>
        <td>
          B21
        </td>
        
        <td>
           Local variable values must not be used as return addresses.
        </td>
  
        <td>
          4.8.2.21
        </td>
  
        <td>
          VM
        </td>
      </tr>
  
      <tr>
        <td>
          B22
        </td>
        
        <td>
          There must be a single, uniquely determined return instruction per
          subroutine call.
        </td>
  
        <td>
          4.8.2.22
        </td>
  
        <td>
          VM
        </td>
      </tr>
  
      <tr>
        <td>
          B23
        </td>
        
        <td>
          Subroutine calls must not be directly or indirectly self-recursive.
        </td>
  
        <td>
          4.8.2.23
        </td>
  
        <td>
          DX
        </td>
      </tr>
  
      <tr>
        <td>
          B24
        </td>
        
        <td>
           <code>ReturnAddress</code> instances must not be reused. If a
           subroutine returns to a <code>ReturnAddress</code> further up the
           stack than where its original call instruction is located, then all
           <code>ReturnAddress</code> instances further down the stack must
           never be used.
        </td>
  
        <td>
          4.8.2.24
        </td>
  
        <td>
          DX
        </td>
      </tr>
  
    </table>
  </body>
</html>
