diff options
author | John McCall <rjmccall@apple.com> | 2009-10-18 01:05:36 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2009-10-18 01:05:36 +0000 |
commit | 51bd803fbdade51d674598ed45da3d54190a656c (patch) | |
tree | 6a0f7a2881033be64625cb432e7b7e96eb0729fa /lib/AST/Decl.cpp | |
parent | a47dd191719e88e41ce82555685869d2054178e1 (diff) |
Clone the full Type hierarchy into the TypeLoc hierarchy. Normalize
TypeLoc class names to be $(Type classname)Loc. Rewrite the visitor.
Provide skeleton implementations for all the new TypeLocs.
Handle all cases in PCH. Handle a few more cases when inserting
location information in SemaType.
It should be extremely straightforward to add new location information
to existing TypeLoc objects now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84386 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/Decl.cpp')
-rw-r--r-- | lib/AST/Decl.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp index 9d7d3d087c..0c413f6742 100644 --- a/lib/AST/Decl.cpp +++ b/lib/AST/Decl.cpp @@ -336,8 +336,15 @@ NamedDecl *NamedDecl::getUnderlyingDecl() { //===----------------------------------------------------------------------===// SourceLocation DeclaratorDecl::getTypeSpecStartLoc() const { - if (DeclInfo) - return DeclInfo->getTypeLoc().getTypeSpecRange().getBegin(); + if (DeclInfo) { + TypeLoc TL = DeclInfo->getTypeLoc(); + while (true) { + TypeLoc NextTL = TL.getNextTypeLoc(); + if (!NextTL) + return TL.getSourceRange().getBegin(); + TL = NextTL; + } + } return SourceLocation(); } |