Nice catch. I think I wrote this and thought I proved to myself that recursion wasn't possible but I guess I goofed!<div><br></div><div>Would be nice to have a test case for this if you have one handy. Its the kind of thing worth dropping in test/Coverage/objc-language-features.inc<br>
<div><br></div><div> - Daniel<br><br><div class="gmail_quote">On Fri, Mar 13, 2009 at 1:36 PM, Fariborz Jahanian <span dir="ltr"><<a href="mailto:fjahanian@apple.com">fjahanian@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Author: fjahanian<br>
Date: Fri Mar 13 15:36:41 2009<br>
New Revision: 66940<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=66940&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=66940&view=rev</a><br>
Log:<br>
Fix a bug in building function pointer type<br>
corresponding to block pointer.<br>
<br>
<br>
Modified:<br>
    cfe/trunk/lib/CodeGen/CodeGenTypes.cpp<br>
<br>
Modified: cfe/trunk/lib/CodeGen/CodeGenTypes.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenTypes.cpp?rev=66940&r1=66939&r2=66940&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenTypes.cpp?rev=66940&r1=66939&r2=66940&view=diff</a><br>

<br>
==============================================================================<br>
--- cfe/trunk/lib/CodeGen/CodeGenTypes.cpp (original)<br>
+++ cfe/trunk/lib/CodeGen/CodeGenTypes.cpp Fri Mar 13 15:36:41 2009<br>
@@ -380,8 +380,9 @@<br>
<br>
   case Type::BlockPointer: {<br>
     const QualType FTy = cast<BlockPointerType>(Ty).getPointeeType();<br>
-    return llvm::PointerType::get(ConvertTypeRecursive(FTy),<br>
-                                  FTy.getAddressSpace());<br>
+    llvm::OpaqueType *PointeeType = llvm::OpaqueType::get();<br>
+    PointersToResolve.push_back(std::make_pair(FTy, PointeeType));<br>
+    return llvm::PointerType::get(PointeeType, FTy.getAddressSpace());<br>
   }<br>
<br>
   case Type::MemberPointer:<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div></div>