summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2009-09-05 00:15:47 +0000
committerJohn McCall <rjmccall@apple.com>2009-09-05 00:15:47 +0000
commitfcc33b074b532adf79dd083cec917d583748aeec (patch)
tree92c39575bf92ea7881b7a571b13404f1d783aae8 /clang/lib/CodeGen
parentf5d5360065bc89d92a1a35790c38256904717469 (diff)
downloadbcm5719-llvm-fcc33b074b532adf79dd083cec917d583748aeec.tar.gz
bcm5719-llvm-fcc33b074b532adf79dd083cec917d583748aeec.zip
Basic support for representing elaborated type specifiers
directly in the AST. The current thinking is to create these only in C++ mode for efficiency. But for now, they're not being created at all; patch to follow. This will let us do things like verify that tags match during template instantation, as well as signal that an elaborated type specifier was used for clients that actually care. Optimally, the TypeLoc hierarchy should be adjusted to carry tag location information as well. llvm-svn: 81057
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r--clang/lib/CodeGen/CGDebugInfo.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGDebugInfo.cpp b/clang/lib/CodeGen/CGDebugInfo.cpp
index c4759b965cb..e53f1fa5254 100644
--- a/clang/lib/CodeGen/CGDebugInfo.cpp
+++ b/clang/lib/CodeGen/CGDebugInfo.cpp
@@ -792,6 +792,9 @@ llvm::DIType CGDebugInfo::getOrCreateType(QualType Ty,
case Type::FunctionProto:
case Type::FunctionNoProto:
return Slot = CreateType(cast<FunctionType>(Ty), Unit);
+ case Type::Elaborated:
+ return Slot = getOrCreateType(cast<ElaboratedType>(Ty)->getUnderlyingType(),
+ Unit);
case Type::ConstantArray:
case Type::ConstantArrayWithExpr:
OpenPOWER on IntegriCloud