Program: 75668
Project: 75668
Buggy source:
/** 
 * Given a class name, convert the specified class to C (.c and .h files).
 * @param classPath The classpath to use during the conversion.
 * @param className The name of the class to translate.
 * @param generateSingleClass Indicates whether (true) or not (false)"single class mode" should be used during the conversion (see  {@link Context#getSingleClassMode()} for details).
 */
public static void convert(String classPath,String className,String compileMode,boolean verbose) throws IOException {
  boolean generateSingleClass=compileMode.equals("String_Node_Str");
  if (verbose) {
    System.out.println("String_Node_Str" + classPath);
    System.out.println("String_Node_Str" + generateSingleClass);
  }
  Scene.v().reset();
  Scene.v().setSootClassPath(classPath);
  Scene.v().loadClassAndSupport(className);
  RequiredFileGenerator RFG=new RequiredFileGenerator();
  if (!generateSingleClass) {
    RFG.init(classPath,className);
  }
  HeaderFileGenerator hGenerator=new HeaderFileGenerator();
  CodeFileGenerator cGenerator=new CodeFileGenerator();
  InterfaceFileGenerator iGenerator=new InterfaceFileGenerator();
  if (generateSingleClass) {
    cGenerator.setSingleClassMode();
    hGenerator.setSingleClassMode();
  }
  SootClass sootClass=Scene.v().getSootClass(className);
  CNames.setup();
  String code=iGenerator.generate(sootClass);
  FileHandler.write(className + InterfaceFileGenerator.interfaceFileNameSuffix(),code);
  code=hGenerator.generate(sootClass);
  FileHandler.write(className + "String_Node_Str",code);
  code=cGenerator.generate(sootClass);
  FileHandler.write(className + "String_Node_Str",code);
  if (!generateSingleClass) {
    RFG.generateTransitiveClosureOf(classPath,className,compileMode,verbose);
    MakeFileGenerator.generateMakeFile(classPath,className,RFG.getRequiredClasses(classPath,className));
  }
}

Fixed version (ground truth):
/** 
 * Given a class name, convert the specified class to C (.c and .h files).
 * @param classPath The classpath to use during the conversion.
 * @param className The name of the class to translate.
 * @param generateSingleClass Indicates whether (true) or not (false)"single class mode" should be used during the conversion (see  {@link Context#getSingleClassMode()} for details).
 */
public static void convert(String classPath,String className,String compileMode,boolean verbose) throws IOException {
  boolean generateSingleClass=compileMode.equals("String_Node_Str");
  if (verbose) {
    System.out.println("String_Node_Str" + classPath);
    System.out.println("String_Node_Str" + generateSingleClass);
  }
  Scene.v().reset();
  Scene.v().setSootClassPath(classPath);
  Scene.v().loadClassAndSupport(className);
  RequiredFileGenerator RFG=new RequiredFileGenerator();
  if (!generateSingleClass) {
    RFG.init(classPath,className);
  }
  HeaderFileGenerator hGenerator=new HeaderFileGenerator();
  CodeFileGenerator cGenerator=new CodeFileGenerator();
  InterfaceFileGenerator iGenerator=new InterfaceFileGenerator();
  MainFileGenerator mGenerator=new MainFileGenerator();
  if (generateSingleClass) {
    cGenerator.setSingleClassMode();
    hGenerator.setSingleClassMode();
  }
  SootClass sootClass=Scene.v().getSootClass(className);
  CNames.setup();
  String code=iGenerator.generate(sootClass);
  FileHandler.write(className + InterfaceFileGenerator.interfaceFileNameSuffix(),code);
  code=hGenerator.generate(sootClass);
  FileHandler.write(className + "String_Node_Str",code);
  code=cGenerator.generate(sootClass);
  FileHandler.write(className + "String_Node_Str",code);
  if (!generateSingleClass) {
    RFG.generateTransitiveClosureOf(classPath,className,compileMode,verbose);
    MakeFileGenerator.generateMakeFile(classPath,className);
    code=mGenerator.generate(sootClass);
    FileHandler.write(className + "String_Node_Str",code);
  }
}