-
- Downloads
Cling's error recovery has to be able to revert declarations that are declared
multiple times (aka redeclarable declarations). When clang sees redeclaration it creates a single-linked list, which head points to the last declaration of the list. Consider the example: typedef int A; typedef int B; typedef int C; extern A i; extern B i; extern C i; int i; That would create the following redeclaration chain: +---+ +---+ +---+ +---+ | A | <- | B | <- | C | <- | i | +---+ +---+ +---+ +---+ | ^ | | +--------------------------+ In order to remove the last declaration we need to rebuild the redeclaration chain. * Rebuild properly the redeclaration chain * Add tests for that * Improve the current error recovery infrastructure - this will be changed a lot soon. git-svn-id: http://root.cern.ch/svn/root/trunk@41851 27541ba8-7e3a-0410-8455-c3a389f83636
Showing
- cint/cling/lib/Interpreter/ChainedConsumer.cpp 68 additions, 50 deletionscint/cling/lib/Interpreter/ChainedConsumer.cpp
- cint/cling/lib/Interpreter/ChainedConsumer.h 33 additions, 0 deletionscint/cling/lib/Interpreter/ChainedConsumer.h
- cint/cling/test/ErrorRecovery/Redeclarables.C 37 additions, 0 deletionscint/cling/test/ErrorRecovery/Redeclarables.C
- cint/cling/test/ErrorRecovery/Redeclarables.h 19 additions, 0 deletionscint/cling/test/ErrorRecovery/Redeclarables.h
- cint/cling/test/ErrorRecovery/SubsequentDecls.C 5 additions, 1 deletioncint/cling/test/ErrorRecovery/SubsequentDecls.C
- cint/cling/test/ErrorRecovery/SubsequentDecls.h 0 additions, 1 deletioncint/cling/test/ErrorRecovery/SubsequentDecls.h
Loading
Please register or sign in to comment