aboutsummaryrefslogtreecommitdiff
path: root/CodeGen/CodeGenTypes.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'CodeGen/CodeGenTypes.cpp')
-rw-r--r--CodeGen/CodeGenTypes.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/CodeGen/CodeGenTypes.cpp b/CodeGen/CodeGenTypes.cpp
index 4cced51e25..7c6abc1bec 100644
--- a/CodeGen/CodeGenTypes.cpp
+++ b/CodeGen/CodeGenTypes.cpp
@@ -94,8 +94,12 @@ CodeGenTypes::~CodeGenTypes() {
/// isOpaqueTypeDefinition - Return true if LT is a llvm::OpaqueType
/// and T is tag definition. This helper routine does not check
/// relationship between T and LT.
-static bool isOpaqueTypeDefinition(QualType T, llvm::Type *LT) {
-
+static bool isOpaqueTypeDefinition(QualType T, const llvm::Type *LT) {
+ if (T->isPointerType()) {
+ return
+ isOpaqueTypeDefinition(cast<PointerType>(*T).getPointeeType(),
+ cast<llvm::PointerType>(LT)->getElementType());
+ }
if (!isa<llvm::OpaqueType>(LT))
return false;