aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhanyong Wan <wan@google.com>2010-09-01 23:54:22 +0000
committerZhanyong Wan <wan@google.com>2010-09-01 23:54:22 +0000
commitfcf431609769a9600c24618d1a33135caec4fef2 (patch)
tree224e2b851913236d98dd50d297f6fc8f725e1bdf
parent65206c552ae5215c2225502686b5e164ebe2c2da (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.h7
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: