On Jun 6, 2013, at 5:48 PM, Fariborz Jahanian <[email protected]> wrote:
> Author: fjahanian
> Date: Thu Jun  6 19:48:14 2013
> New Revision: 183471
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=183471&view=rev
> Log:
> blocks: fixes an ast bug when block pointer variable
> is evaluated in a condition expression and then
> dereferenced to envoke the block. This is
> pr15663 and I applied a slight variation of the
> patch with a test case. (patch is from
> Arthur O'Dwyer). Also // rdar://14085217
> 
> Modified:
>    cfe/trunk/lib/Sema/SemaExpr.cpp
>    cfe/trunk/test/CodeGen/blocks.c
> 
> Modified: cfe/trunk/lib/Sema/SemaExpr.cpp
> URL: 
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExpr.cpp?rev=183471&r1=183470&r2=183471&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaExpr.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaExpr.cpp Thu Jun  6 19:48:14 2013
> @@ -5149,7 +5149,10 @@ static QualType checkConditionalPointerC
> 
>   // The pointer types are compatible.
>   QualType ResultTy = CompositeTy.withCVRQualifiers(MergedCVRQual);
> -  ResultTy = S.Context.getPointerType(ResultTy);
> +  if (isa<BlockPointerType>(LHSTy))

I see nothing suggesting that LHSTy has to be a canonical type.

It would be easy to just remember from above whether you're working
with block pointers or normal ones, though.

John.
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to