summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorSerge Pavlov <sepavloff@gmail.com>2015-12-28 17:19:12 +0000
committerSerge Pavlov <sepavloff@gmail.com>2015-12-28 17:19:12 +0000
commita6adc9e790a3537ac05f45b1ab8e7fe7e09d5991 (patch)
tree30d6d67fc0e4bfc4bbc33276eba210030b19d7a3 /clang
parentd0af3b3178082971725c1bd688ed935f64ffa6b2 (diff)
downloadbcm5719-llvm-a6adc9e790a3537ac05f45b1ab8e7fe7e09d5991.tar.gz
bcm5719-llvm-a6adc9e790a3537ac05f45b1ab8e7fe7e09d5991.zip
Avoid crash when dumping LocInfoType.
LocInfoType is a helper type used internally inside Sema and Parser, it does not exist in valid AST. LocInfoType uses code value outside the range of valid Type codes, as a result, dumping such type causes error. The fix allows correct dumping LocInfoType. llvm-svn: 256503
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/AST/ASTDumper.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/lib/AST/ASTDumper.cpp b/clang/lib/AST/ASTDumper.cpp
index f94bd49fd85..e7fee0316b6 100644
--- a/clang/lib/AST/ASTDumper.cpp
+++ b/clang/lib/AST/ASTDumper.cpp
@@ -24,6 +24,7 @@
#include "clang/Basic/Builtins.h"
#include "clang/Basic/Module.h"
#include "clang/Basic/SourceManager.h"
+#include "clang/Sema/LocInfoType.h"
#include "llvm/Support/raw_ostream.h"
using namespace clang;
using namespace clang::comments;
@@ -655,6 +656,15 @@ void ASTDumper::dumpTypeAsChild(const Type *T) {
OS << "<<<NULL>>>";
return;
}
+ if (const LocInfoType *LIT = llvm::dyn_cast<LocInfoType>(T)) {
+ {
+ ColorScope Color(*this, TypeColor);
+ OS << "LocInfo Type";
+ }
+ dumpPointer(T);
+ dumpTypeAsChild(LIT->getTypeSourceInfo()->getType());
+ return;
+ }
{
ColorScope Color(*this, TypeColor);
OpenPOWER on IntegriCloud