diff options
author | Serge Pavlov <sepavloff@gmail.com> | 2015-12-28 17:19:12 +0000 |
---|---|---|
committer | Serge Pavlov <sepavloff@gmail.com> | 2015-12-28 17:19:12 +0000 |
commit | a6adc9e790a3537ac05f45b1ab8e7fe7e09d5991 (patch) | |
tree | 30d6d67fc0e4bfc4bbc33276eba210030b19d7a3 /clang | |
parent | d0af3b3178082971725c1bd688ed935f64ffa6b2 (diff) | |
download | bcm5719-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.cpp | 10 |
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); |