Introduce support for "transparent" DeclContexts, which are
DeclContexts whose members are visible from enclosing DeclContexts up to (and including) the innermost enclosing non-transparent DeclContexts. Transparent DeclContexts unify the mechanism to be used for various language features, including C enumerations, anonymous unions, C++0x inline namespaces, and C++ linkage specifications. Please refer to the documentation in the Clang internals manual for more information. Only enumerations and linkage specifications currently use transparent DeclContexts. Still to do: use transparent DeclContexts to implement anonymous unions and GCC's anonymous structs extension, and, later, the C++0x features. We also need to tighten up the DeclContext/ScopedDecl link to ensure that every ScopedDecl is in a single DeclContext, which will ensure that we can then enforce ownership and reduce the memory footprint of DeclContext. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61735 91177308-0d34-0410-b5e6-96231b3b80d8
Showing
- Driver/ASTConsumers.cpp 4 additions, 4 deletionsDriver/ASTConsumers.cpp
- docs/InternalsManual.html 301 additions, 0 deletionsdocs/InternalsManual.html
- include/clang/AST/DeclBase.h 29 additions, 9 deletionsinclude/clang/AST/DeclBase.h
- include/clang/AST/DeclCXX.h 8 additions, 29 deletionsinclude/clang/AST/DeclCXX.h
- include/clang/Parse/Action.h 29 additions, 17 deletionsinclude/clang/Parse/Action.h
- lib/AST/DeclBase.cpp 52 additions, 7 deletionslib/AST/DeclBase.cpp
- lib/AST/DeclCXX.cpp 3 additions, 35 deletionslib/AST/DeclCXX.cpp
- lib/AST/DeclSerialization.cpp 0 additions, 17 deletionslib/AST/DeclSerialization.cpp
- lib/Parse/ParseDecl.cpp 4 additions, 0 deletionslib/Parse/ParseDecl.cpp
- lib/Parse/ParseDeclCXX.cpp 14 additions, 13 deletionslib/Parse/ParseDeclCXX.cpp
- lib/Sema/IdentifierResolver.cpp 13 additions, 48 deletionslib/Sema/IdentifierResolver.cpp
- lib/Sema/IdentifierResolver.h 1 addition, 16 deletionslib/Sema/IdentifierResolver.h
- lib/Sema/Sema.h 15 additions, 6 deletionslib/Sema/Sema.h
- lib/Sema/SemaDecl.cpp 38 additions, 15 deletionslib/Sema/SemaDecl.cpp
- lib/Sema/SemaDeclCXX.cpp 30 additions, 29 deletionslib/Sema/SemaDeclCXX.cpp
- test/SemaCXX/qualified-id-lookup.cpp 8 additions, 0 deletionstest/SemaCXX/qualified-id-lookup.cpp
Loading
Please register or sign in to comment