<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">I attached a test case to the radar. It is not easy to come up with a small test case (trust me I tried :).<div>I can add the test case (which I made somewhat smaller and is attached to the radar) if Chris can<div>OK it. </div><div><br class="webkit-block-placeholder"></div><div>- Fariborz</div><div><br><div><div>On Mar 13, 2009, at 1:56 PM, Daniel Dunbar wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">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></blockquote></div><br></div></div></body></html>