diff options
author | Zhanyong Wan <wan@google.com> | 2010-09-01 23:54:22 +0000 |
---|---|---|
committer | Zhanyong Wan <wan@google.com> | 2010-09-01 23:54:22 +0000 |
commit | fcf431609769a9600c24618d1a33135caec4fef2 (patch) | |
tree | 224e2b851913236d98dd50d297f6fc8f725e1bdf | |
parent | 65206c552ae5215c2225502686b5e164ebe2c2da (diff) |
Make RecursiveASTVisitor not crash when a TemplateArgumentLoc object has a NULL TypeSourceInfo*. This fixes the symptom of http://llvm.org/PR8043. Reviewed by csilvers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112777 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/clang/AST/RecursiveASTVisitor.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/include/clang/AST/RecursiveASTVisitor.h b/include/clang/AST/RecursiveASTVisitor.h index 79ac072fa1..10b3e516be 100644 --- a/include/clang/AST/RecursiveASTVisitor.h +++ b/include/clang/AST/RecursiveASTVisitor.h @@ -541,8 +541,11 @@ bool RecursiveASTVisitor<Derived>::TraverseTemplateArgumentLoc( return true; case TemplateArgument::Type: { - TypeSourceInfo *TSI = ArgLoc.getTypeSourceInfo(); - return getDerived().TraverseTypeLoc(TSI->getTypeLoc()); + // FIXME: how can TSI ever be NULL? + if (TypeSourceInfo *TSI = ArgLoc.getTypeSourceInfo()) + return getDerived().TraverseTypeLoc(TSI->getTypeLoc()); + else + return true; } case TemplateArgument::Template: |