Program: 185590
Project: 185590
Buggy source:
private void visitStdMethod(MethodNode node,boolean isConstructor,Parameter[] parameters,Statement code){
  MethodVisitor mv=controller.getMethodVisitor();
  final ClassNode superClass=controller.getClassNode().getSuperClass();
  if (isConstructor && (code == null || !((ConstructorNode)node).firstStatementIsSpecialConstructorCall())) {
    boolean hasCallToSuper=false;
    if (code != null && controller.getClassNode() instanceof InnerClassNode) {
      if (code instanceof BlockStatement) {
        for (        Statement statement : ((BlockStatement)code).getStatements()) {
          if (statement instanceof ExpressionStatement) {
            final Expression expression=((ExpressionStatement)statement).getExpression();
            if (expression instanceof ConstructorCallExpression) {
              ConstructorCallExpression call=(ConstructorCallExpression)expression;
              if (call.isSuperCall()) {
                hasCallToSuper=true;
                break;
              }
            }
          }
        }
      }
    }
    if (!hasCallToSuper) {
      mv.visitVarInsn(ALOAD,0);
      mv.visitMethodInsn(INVOKESPECIAL,BytecodeHelper.getClassInternalName(superClass),"String_Node_Str","String_Node_Str",false);
    }
  }
  controller.getCompileStack().init(node.getVariableScope(),parameters);
  controller.getCallSiteWriter().makeSiteEntry();
  super.visitConstructorOrMethod(node,isConstructor);
  controller.getCompileStack().clear();
  if (node.isVoidMethod()) {
    mv.visitInsn(RETURN);
  }
 else {
    ClassNode type=node.getReturnType().redirect();
    if (ClassHelper.isPrimitiveType(type)) {
      mv.visitLdcInsn(0);
      controller.getOperandStack().push(ClassHelper.int_TYPE);
      controller.getOperandStack().doGroovyCast(type);
      BytecodeHelper.doReturn(mv,type);
      controller.getOperandStack().remove(1);
    }
 else {
      mv.visitInsn(ACONST_NULL);
      BytecodeHelper.doReturn(mv,type);
    }
  }
}

Fixed version (ground truth):
private void visitStdMethod(MethodNode node,boolean isConstructor,Parameter[] parameters,Statement code){
  controller.getCompileStack().init(node.getVariableScope(),parameters);
  controller.getCallSiteWriter().makeSiteEntry();
  MethodVisitor mv=controller.getMethodVisitor();
  final ClassNode superClass=controller.getClassNode().getSuperClass();
  if (isConstructor && (code == null || !((ConstructorNode)node).firstStatementIsSpecialConstructorCall())) {
    boolean hasCallToSuper=false;
    if (code != null && controller.getClassNode() instanceof InnerClassNode) {
      if (code instanceof BlockStatement) {
        for (        Statement statement : ((BlockStatement)code).getStatements()) {
          if (statement instanceof ExpressionStatement) {
            final Expression expression=((ExpressionStatement)statement).getExpression();
            if (expression instanceof ConstructorCallExpression) {
              ConstructorCallExpression call=(ConstructorCallExpression)expression;
              if (call.isSuperCall()) {
                hasCallToSuper=true;
                break;
              }
            }
          }
        }
      }
    }
    if (!hasCallToSuper) {
      mv.visitVarInsn(ALOAD,0);
      mv.visitMethodInsn(INVOKESPECIAL,BytecodeHelper.getClassInternalName(superClass),"String_Node_Str","String_Node_Str",false);
    }
  }
  super.visitConstructorOrMethod(node,isConstructor);
  controller.getCompileStack().clear();
  if (node.isVoidMethod()) {
    mv.visitInsn(RETURN);
  }
 else {
    ClassNode type=node.getReturnType().redirect();
    if (ClassHelper.isPrimitiveType(type)) {
      mv.visitLdcInsn(0);
      controller.getOperandStack().push(ClassHelper.int_TYPE);
      controller.getOperandStack().doGroovyCast(type);
      BytecodeHelper.doReturn(mv,type);
      controller.getOperandStack().remove(1);
    }
 else {
      mv.visitInsn(ACONST_NULL);
      BytecodeHelper.doReturn(mv,type);
    }
  }
}