Buggy code:
public class TypeDeclaration extends Statement implements ReferenceContext , ProblemSeverities { public int modifiers ; public int modifiersSourceStart ; public char [ ] name ; public TypeReference superclass ; public TypeReference [ ] superInterfaces ; public FieldDeclaration [ ] fields ; public AbstractMethodDeclaration [ ] methods ; public MemberTypeDeclaration [ ] memberTypes ; public SourceTypeBinding binding ; public ClassScope scope ; public MethodScope initializerScope ; public MethodScope staticInitializerScope ; public boolean ignoreFurtherInvestigation = false ; public int maxFieldCount ; public int declarationSourceStart ; public int declarationSourceEnd ; public int bodyStart ; protected boolean hasBeenGenerated = false ; public void abort ( int abortLevel ) { } public final void addClinit ( ) { } public FlowInfo analyseCode ( BlockScope currentScope , FlowContext flowContext , FlowInfo flowInfo ) { } public void analyseCode ( ClassScope classScope1 ) { } public void analyseCode ( ClassScope currentScope , FlowContext flowContext , FlowInfo flowInfo ) { } public void analyseCode ( CompilationUnitScope unitScope ) { } public boolean checkConstructors ( Parser parser ) { } public CompilationResult compilationResult ( ) { } public ConstructorDeclaration createsInternalConstructor ( boolean needExplicitConstructorCall , boolean needToInsert ) { } public FieldDeclaration declarationOf ( FieldBinding fieldBinding ) { } public TypeDeclaration declarationOf ( MemberTypeBinding memberTypeBinding ) { } public AbstractMethodDeclaration declarationOf ( MethodBinding methodBinding ) { } public TypeDeclaration declarationOfType ( char [ ] [ ] typeName ) { } public void generateCode ( ClassFile enclosingClassFile ) { } public void generateCode ( BlockScope blockScope , CodeStream codeStream ) { if ( hasBeenGenerated ) return ; int pc = codeStream . position ; if ( ( binding ) != null ) { ( ( org . eclipse . jdt . internal . compiler . lookup . NestedTypeBinding ) ( binding ) ) . computeSyntheticArgumentsOffset ( ) ; } generateCode ( codeStream . classFile ) ; <START_BUG> codeStream . recordPositionsFrom ( pc , this ) ; <END_BUG> } public void generateCode ( ClassScope classScope , ClassFile enclosingClassFile ) { } public void generateCode ( CompilationUnitScope unitScope ) { } public boolean isInterface ( ) { } public final boolean needClassInitMethod ( ) { } public void parseMethod ( Parser parser , CompilationUnitDeclaration unit ) { } public void resolve ( ) { } public void resolve ( BlockScope blockScope ) { } public void resolve ( ClassScope upperScope ) { } public void resolve ( CompilationUnitScope upperScope ) { } public void tagAsHavingErrors ( ) { } public String toString ( int tab ) { } public String toStringBody ( int tab ) { } public String toStringHeader ( ) { } public void traverse ( IAbstractSyntaxTreeVisitor visitor , BlockScope blockScope ) { } public void traverse ( IAbstractSyntaxTreeVisitor visitor , ClassScope classScope ) { } public void traverse ( IAbstractSyntaxTreeVisitor visitor , CompilationUnitScope unitScope ) { } void updateMaxFieldCount ( ) { } }

Fix:
codeStream . recordPositionsFrom ( pc , this . sourceStart ) ;