diff options
Diffstat (limited to 'clang/lib/Sema/SemaType.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaType.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaType.cpp b/clang/lib/Sema/SemaType.cpp index 2b9d06814d7ad..5bbaebe24cec0 100644 --- a/clang/lib/Sema/SemaType.cpp +++ b/clang/lib/Sema/SemaType.cpp @@ -6325,7 +6325,8 @@ namespace { Pointer, BlockPointer, Reference, - MemberPointer + MemberPointer, + MacroQualified, }; QualType Original; @@ -6356,6 +6357,9 @@ namespace { } else if (isa<AttributedType>(Ty)) { T = cast<AttributedType>(Ty)->getEquivalentType(); Stack.push_back(Attributed); + } else if (isa<MacroQualifiedType>(Ty)) { + T = cast<MacroQualifiedType>(Ty)->getUnderlyingType(); + Stack.push_back(MacroQualified); } else { const Type *DTy = Ty->getUnqualifiedDesugaredType(); if (Ty == DTy) { @@ -6412,6 +6416,9 @@ namespace { return C.getParenType(New); } + case MacroQualified: + return wrap(C, cast<MacroQualifiedType>(Old)->getUnderlyingType(), I); + case Pointer: { QualType New = wrap(C, cast<PointerType>(Old)->getPointeeType(), I); return C.getPointerType(New); |
