]> granicus.if.org Git - clang/commitdiff
Fix a bug in building function pointer type
authorFariborz Jahanian <fjahanian@apple.com>
Fri, 13 Mar 2009 20:36:41 +0000 (20:36 +0000)
committerFariborz Jahanian <fjahanian@apple.com>
Fri, 13 Mar 2009 20:36:41 +0000 (20:36 +0000)
corresponding to block pointer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66940 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CodeGenTypes.cpp

index 5eb925e5e7c1946252cc8eaa119525ac1adad6d5..2d4c27c2aca0c44fdeb1e1fa700c64656fd45588 100644 (file)
@@ -380,8 +380,9 @@ const llvm::Type *CodeGenTypes::ConvertNewType(QualType T) {
 
   case Type::BlockPointer: {
     const QualType FTy = cast<BlockPointerType>(Ty).getPointeeType();
-    return llvm::PointerType::get(ConvertTypeRecursive(FTy), 
-                                  FTy.getAddressSpace());
+    llvm::OpaqueType *PointeeType = llvm::OpaqueType::get();
+    PointersToResolve.push_back(std::make_pair(FTy, PointeeType));
+    return llvm::PointerType::get(PointeeType, FTy.getAddressSpace());
   }
 
   case Type::MemberPointer: