diff options
author | Leonard Chan <leonardchan@google.com> | 2019-05-07 03:20:17 +0000 |
---|---|---|
committer | Leonard Chan <leonardchan@google.com> | 2019-05-07 03:20:17 +0000 |
commit | c72aaf62d3f92c0c6d33b4df2253505f6eb22996 (patch) | |
tree | bb29b4896b3792cdef8f5017a40b59625c456f04 /clang/lib/Serialization/ASTReader.cpp | |
parent | da82ce99b7460164ffb841619aadb44f397d2106 (diff) | |
download | bcm5719-llvm-c72aaf62d3f92c0c6d33b4df2253505f6eb22996.tar.gz bcm5719-llvm-c72aaf62d3f92c0c6d33b4df2253505f6eb22996.zip |
Recommit r359859 "[Attribute/Diagnostics] Print macro if definition is an attribute declaration"
Updated with fix for read of uninitialized memory.
llvm-svn: 360109
Diffstat (limited to 'clang/lib/Serialization/ASTReader.cpp')
-rw-r--r-- | clang/lib/Serialization/ASTReader.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp index a6ff54568d2..64af0fa8a1d 100644 --- a/clang/lib/Serialization/ASTReader.cpp +++ b/clang/lib/Serialization/ASTReader.cpp @@ -6200,6 +6200,16 @@ QualType ASTReader::readTypeRecord(unsigned Index) { return Context.getParenType(InnerType); } + case TYPE_MACRO_QUALIFIED: { + if (Record.size() != 2) { + Error("incorrect encoding of macro defined type"); + return QualType(); + } + QualType UnderlyingTy = readType(*Loc.F, Record, Idx); + IdentifierInfo *MacroII = GetIdentifierInfo(*Loc.F, Record, Idx); + return Context.getMacroQualifiedType(UnderlyingTy, MacroII); + } + case TYPE_PACK_EXPANSION: { if (Record.size() != 2) { Error("incorrect encoding of pack expansion type"); @@ -6521,6 +6531,10 @@ void TypeLocReader::VisitAdjustedTypeLoc(AdjustedTypeLoc TL) { // nothing to do } +void TypeLocReader::VisitMacroQualifiedTypeLoc(MacroQualifiedTypeLoc TL) { + TL.setExpansionLoc(ReadSourceLocation()); +} + void TypeLocReader::VisitBlockPointerTypeLoc(BlockPointerTypeLoc TL) { TL.setCaretLoc(ReadSourceLocation()); } |