[cfe-commits] r64994 - in /cfe/trunk/lib: AST/ExprConstant.cpp CodeGen/CGBlocks.cpp CodeGen/CGExprConstant.cpp CodeGen/CGExprScalar.cpp CodeGen/CodeGenModule.h

Mike Stump mrs at apple.com
Thu Feb 19 14:06:32 PST 2009


On Feb 18, 2009, at 7:41 PM, Eli Friedman wrote:
> On Wed, Feb 18, 2009 at 7:22 PM, Mike Stump <mrs at apple.com> wrote:
>> On Feb 18, 2009, at 7:12 PM, Eli Friedman wrote:
>>>
>>> On Wed, Feb 18, 2009 at 5:01 PM, Mike Stump <mrs at apple.com> wrote:
>>>>
>>>> --- cfe/trunk/lib/AST/ExprConstant.cpp (original)
>>>> +++ cfe/trunk/lib/AST/ExprConstant.cpp Wed Feb 18 19:01:04 2009
>>>> @@ -260,6 +260,7 @@
>>>> APValue VisitAddrLabelExpr(AddrLabelExpr *E)
>>>>    { return APValue(E, 0); }
>>>> APValue VisitCallExpr(CallExpr *E);
>>>> +  APValue VisitBlockExpr(BlockExpr *E) { return APValue(E, 0); }
>>>
>>> Aren't there some missing checks here?
>>
>> Work in progress.  There is all sorts of checking, semantics and  
>> codegen
>> missing.
>
> That's fine, but it would be nice to at least put in a FIXME for the
> missing checks.

[ pause ] Ok, added enough code to add the check.

> This initializer for y must be illegal because it can't be evaluated
> at compile-time: the returned value changes!  Therefore, blocks aren't
> constant in the general case.

Yes, I know that, but, spending time adding the check was time taken  
away from actually working on BlockDeclRefExprs.  :-(



More information about the cfe-commits mailing list