]> granicus.if.org Git - clang/commit
Push nested-name-specifier source location information into elaborated
authorDouglas Gregor <dgregor@apple.com>
Tue, 1 Mar 2011 03:11:17 +0000 (03:11 +0000)
committerDouglas Gregor <dgregor@apple.com>
Tue, 1 Mar 2011 03:11:17 +0000 (03:11 +0000)
commit239cbb023c8da689e7722f7146914eed9755e368
tree119dfea89042d2de2b6306fd98bb4c10f51f177e
parent4ba48c43410a8ad4f32d1d3f684c7d297513e0a1
Push nested-name-specifier source location information into elaborated
name types, e.g., "enum clang::NestedNameSpecifier::SpecifierKind".

Aside from the normal changes, this also required some tweaks to the
parser. Essentially, when we're looking at a type name (via
getTypeName()) specifically for the purpose of creating an annotation
token, we pass down the flag that asks for full type-source location
information to be stored within the returned type. That way, we retain
source-location information involving nested-name-specifiers rather
than trying to reconstruct that information later, long after it's
been lost in the parser.

With this change, test/Index/recursive-cxx-member-calls.cpp is showing
much improved results again, since that code has lots of
nested-name-specifiers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126737 91177308-0d34-0410-b5e6-96231b3b80d8
16 files changed:
include/clang/AST/RecursiveASTVisitor.h
include/clang/AST/TypeLoc.h
include/clang/Sema/Sema.h
lib/AST/TypeLoc.cpp
lib/Parse/Parser.cpp
lib/Sema/SemaDecl.cpp
lib/Sema/SemaDeclCXX.cpp
lib/Sema/SemaTemplate.cpp
lib/Sema/SemaTemplateInstantiate.cpp
lib/Sema/SemaType.cpp
lib/Sema/TreeTransform.h
lib/Serialization/ASTReader.cpp
lib/Serialization/ASTWriter.cpp
test/Index/annotate-nested-name-specifier.cpp
test/Index/recursive-cxx-member-calls.cpp
tools/libclang/CIndex.cpp