Buggy code:
public class CMethodBindingEmitter extends FunctionEmitter { protected static final CommentEmitter defaultCommentEmitter = new CMethodBindingEmitter . DefaultCommentEmitter ( ) ; protected static final String arrayResLength = "_array_res_length" ; protected static final String arrayRes = "_array_res" ; protected static final String arrayIdx = "_array_idx" ; protected final Logger LOG ; protected MethodBinding binding ; private final String packageName ; private final String className ; private final boolean isOverloadedBinding ; private final boolean isJavaMethodStatic ; protected boolean forImplementingMethodCall ; protected boolean forIndirectBufferAndArrayImplementation ; private List < String > temporaryCVariableDeclarations ; private List < String > temporaryCVariableAssignments ; private MessageFormat returnValueCapacityExpression = null ; private MessageFormat returnValueLengthExpression = null ; protected static final String STRING_CHARS_PREFIX = "_strchars_" ; protected MachineDataInfo machDesc ; public CMethodBindingEmitter ( final MethodBinding binding , final PrintWriter output , final String javaPackageName , final String javaClassName , final boolean isOverloadedBinding , final boolean isJavaMethodStatic , final boolean forImplementingMethodCall , final boolean forIndirectBufferAndArrayImplementation , final MachineDataInfo machDesc , final JavaConfiguration configuration ) { } public final MethodBinding getBinding ( ) { } @ Override public String getName ( ) { } @ Override public FunctionSymbol getCSymbol ( ) { } public final MessageFormat getReturnValueCapacityExpression ( ) { } public final void setReturnValueCapacityExpression ( final MessageFormat expression ) { } public final MessageFormat getReturnValueLengthExpression ( ) { } public final void setReturnValueLengthExpression ( final MessageFormat expression ) { } public final List < String > getTemporaryCVariableDeclarations ( ) { } public final void setTemporaryCVariableDeclarations ( final List < String > arg ) { } public final List < String > getTemporaryCVariableAssignments ( ) { } public final void setTemporaryCVariableAssignments ( final List < String > arg ) { } public String getJavaPackageName ( ) { } public String getJavaClassName ( ) { } public final boolean getIsOverloadedBinding ( ) { } public final boolean getIsJavaMethodStatic ( ) { } public final boolean forIndirectBufferAndArrayImplementation ( ) { } public final MachineDataInfo getMachineDataInfo ( ) { } @ Override protected void emitReturnType ( final PrintWriter writer ) { } @ Override protected void emitName ( final PrintWriter writer ) { } protected String getImplSuffix ( ) { } @ Override protected int emitArguments ( final PrintWriter writer ) { } @ Override protected void emitBody ( final PrintWriter writer ) { } protected void emitBodyVariableDeclarations ( final PrintWriter writer ) { } protected void emitBodyUserVariableDeclarations ( final PrintWriter writer ) { } protected boolean isUTF8Type ( Type type ) { } protected void emitBodyVariablePreCallSetup ( final PrintWriter writer ) { } protected void emitBodyVariablePostCallCleanup ( final PrintWriter writer ) { } protected int emitBodyPassCArguments ( final PrintWriter writer ) { } private boolean isCStructFunctionPointer = false ; protected void setIsCStructFunctionPointer ( final boolean v ) { } protected void emitBodyCallCFunction ( final PrintWriter writer ) { writer . print ( "<seq2seq4repair_space>" ) ; final Type cReturnType = binding . getCReturnType ( ) ; if ( ! ( cReturnType . isVoid ( ) ) ) { writer . print ( "_res<seq2seq4repair_space>=<seq2seq4repair_space>" ) ; } if ( ( isCStructFunctionPointer ) && ( binding . hasContainingType ( ) ) ) { writer . print ( ( ( CMethodBindingEmitter . cThisArgumentName ( ) ) + "->" ) ) ; } <START_BUG> writer . print ( binding . getCSymbol ( ) . getName ( ) ) ; <END_BUG> writer . print ( "(" ) ; emitBodyPassCArguments ( writer ) ; writer . println ( ");" ) ; } protected void emitBodyUserVariableAssignments ( final PrintWriter writer ) { } protected void emitBodyReturnResult ( final PrintWriter writer ) { } protected static String cThisArgumentName ( ) { } protected String jniMangle ( final MethodBinding binding ) { } protected void jniMangle ( final Class < ? > c , final StringBuilder res , final boolean syntheticArgument ) { } private void emitOutOfMemoryCheck ( final PrintWriter writer , final String varName , final String errorMessage ) { } private void emitMalloc ( final PrintWriter writer , final String targetVarName , final String elementTypeString , final boolean elementTypeIsConst , final String numElementsExpression , final String mallocFailureErrorString ) { } private void emitCalloc ( final PrintWriter writer , final String targetVarName , final String elementTypeString , final String numElementsExpression , final String mallocFailureErrorString ) { } private void emitGetStringChars ( final PrintWriter writer , final String sourceVarName , final String receivingVarName , final boolean isUTF8 , final boolean emitElseClause ) { } private void emitGetDirectBufferAddress ( final PrintWriter writer , final String sourceVarName , final String receivingVarTypeString , final String receivingVarName , final boolean receivingIsPtrPtr , final String byteOffsetVarName , final boolean emitElseClause ) { } private void emitReturnDirectBufferAddress ( final PrintWriter writer , final String sourceVarName , final String receivingVarTypeString , final String receivingVarName , final boolean receivingIsPtrPtr , final String byteOffsetVarName ) { } private boolean emitPointerDeclaration ( final PrintWriter writer , final JavaType javaType , final Type cType , final String cVariableName , final String javaArgumentName ) { } private void emitPointerConversion ( final PrintWriter writer , final MethodBinding binding , final JavaType type , final Type cType , final String incomingArgumentName , final String cVariableName , String byteOffsetVarName ) { } protected String byteOffsetArgName ( final int i ) { } protected String isNIOArgName ( final int i ) { } protected String isNIOArgName ( final String s ) { } protected String byteOffsetArrayArgName ( final int i ) { } protected String [ ] argumentNameArray ( ) { } protected String pointerConversionArgumentName ( final String argName ) { } protected static class DefaultCommentEmitter implements CommentEmitter { @ Override public void emit ( final FunctionEmitter emitter , final PrintWriter writer ) { } protected void emitBeginning ( final CMethodBindingEmitter emitter , final PrintWriter writer ) { } protected void emitEnding ( final CMethodBindingEmitter emitter , final PrintWriter writer ) { } } protected boolean javaArgTypeNeedsDataCopy ( final JavaType javaArgType ) { } }

Fix:
writer . print ( binding . getCSymbol ( ) . getOrigName ( ) ) ;