Program: 149942
Project: 149942
Buggy source:
/** 
 * Force compilation of each of the methods and report on the size of the generated machine code.
 */
public static void main(String[] args) throws Exception {
  Class clazz=Class.forName("String_Node_Str");
  Method trivialJ=clazz.getDeclaredMethod("String_Node_Str",clazz);
  Method alloc1J=clazz.getDeclaredMethod("String_Node_Str",(Class[])null);
  Method alloc2J=clazz.getDeclaredMethod("String_Node_Str",(Class[])null);
  Method alloc3J=clazz.getDeclaredMethod("String_Node_Str",(Class[])null);
  Method alloc4J=clazz.getDeclaredMethod("String_Node_Str",Integer.TYPE);
  VM_Method trivial=java.lang.reflect.JikesRVMSupport.getMethodOf(trivialJ);
  VM_Method alloc1=java.lang.reflect.JikesRVMSupport.getMethodOf(alloc1J);
  VM_Method alloc2=java.lang.reflect.JikesRVMSupport.getMethodOf(alloc2J);
  VM_Method alloc3=java.lang.reflect.JikesRVMSupport.getMethodOf(alloc3J);
  VM_Method alloc4=java.lang.reflect.JikesRVMSupport.getMethodOf(alloc4J);
  trivial.compile();
  int trivialSize=trivial.getCurrentCompiledMethod().numberOfInstructions();
  alloc1.compile();
  int alloc1Size=alloc1.getCurrentCompiledMethod().numberOfInstructions();
  alloc2.compile();
  int alloc2Size=alloc2.getCurrentCompiledMethod().numberOfInstructions();
  alloc3.compile();
  int alloc3Size=alloc3.getCurrentCompiledMethod().numberOfInstructions();
  alloc4.compile();
  int alloc4Size=alloc4.getCurrentCompiledMethod().numberOfInstructions();
  alloc1Size-=trivialSize;
  alloc2Size-=trivialSize;
  alloc3Size-=trivialSize;
  alloc4Size-=trivialSize;
  System.out.println("String_Node_Str" + alloc1Size);
  System.out.println("String_Node_Str" + alloc2Size);
  System.out.println("String_Node_Str" + alloc3Size);
  System.out.println("String_Node_Str" + alloc4Size);
  boolean fail=false;
  if (alloc1Size > alloc1Limit) {
    System.out.println("String_Node_Str");
    fail=true;
  }
  if (alloc2Size > alloc2Limit) {
    System.out.println("String_Node_Str");
    fail=true;
  }
  if (alloc3Size > alloc3Limit) {
    System.out.println("String_Node_Str");
    fail=true;
  }
  if (alloc4Size > alloc4Limit) {
    System.out.println("String_Node_Str");
    fail=true;
  }
  if (!fail) {
    System.out.println("String_Node_Str");
  }
}

Fixed version (ground truth):
/** 
 * Force compilation of each of the methods and report on the size of the generated machine code.
 */
public static void main(String[] args) throws Exception {
  Class clazz=Class.forName("String_Node_Str");
  Method trivialJ=clazz.getDeclaredMethod("String_Node_Str",new Class[]{clazz});
  Method alloc1J=clazz.getDeclaredMethod("String_Node_Str",(Class[])null);
  Method alloc2J=clazz.getDeclaredMethod("String_Node_Str",(Class[])null);
  Method alloc3J=clazz.getDeclaredMethod("String_Node_Str",(Class[])null);
  Method alloc4J=clazz.getDeclaredMethod("String_Node_Str",new Class[]{Integer.TYPE});
  VM_Method trivial=java.lang.reflect.JikesRVMSupport.getMethodOf(trivialJ);
  VM_Method alloc1=java.lang.reflect.JikesRVMSupport.getMethodOf(alloc1J);
  VM_Method alloc2=java.lang.reflect.JikesRVMSupport.getMethodOf(alloc2J);
  VM_Method alloc3=java.lang.reflect.JikesRVMSupport.getMethodOf(alloc3J);
  VM_Method alloc4=java.lang.reflect.JikesRVMSupport.getMethodOf(alloc4J);
  trivial.compile();
  int trivialSize=trivial.getCurrentCompiledMethod().numberOfInstructions();
  alloc1.compile();
  int alloc1Size=alloc1.getCurrentCompiledMethod().numberOfInstructions();
  alloc2.compile();
  int alloc2Size=alloc2.getCurrentCompiledMethod().numberOfInstructions();
  alloc3.compile();
  int alloc3Size=alloc3.getCurrentCompiledMethod().numberOfInstructions();
  alloc4.compile();
  int alloc4Size=alloc4.getCurrentCompiledMethod().numberOfInstructions();
  alloc1Size-=trivialSize;
  alloc2Size-=trivialSize;
  alloc3Size-=trivialSize;
  alloc4Size-=trivialSize;
  System.out.println("String_Node_Str" + alloc1Size);
  System.out.println("String_Node_Str" + alloc2Size);
  System.out.println("String_Node_Str" + alloc3Size);
  System.out.println("String_Node_Str" + alloc4Size);
  boolean fail=false;
  if (alloc1Size > alloc1Limit) {
    System.out.println("String_Node_Str");
    fail=true;
  }
  if (alloc2Size > alloc2Limit) {
    System.out.println("String_Node_Str");
    fail=true;
  }
  if (alloc3Size > alloc3Limit) {
    System.out.println("String_Node_Str");
    fail=true;
  }
  if (alloc4Size > alloc4Limit) {
    System.out.println("String_Node_Str");
    fail=true;
  }
  if (!fail) {
    System.out.println("String_Node_Str");
  }
}