[cfe-commits] r147664 - in /cfe/trunk/lib: AST/Expr.cpp CodeGen/CGExprAgg.cpp CodeGen/CGExprComplex.cpp CodeGen/CGExprScalar.cpp Driver/Tools.cpp Serialization/ASTReaderDecl.cpp

Chad Rosier mcrosier at apple.com
Fri Jan 6 16:41:00 PST 2012


It was.

 Chad

On Jan 6, 2012, at 4:26 PM, Eric Christopher wrote:

> 
> On Jan 6, 2012, at 4:21 PM, Chris Lattner wrote:
> 
>> 
>> On Jan 6, 2012, at 3:08 PM, John McCall wrote:
>> 
>>> On Jan 6, 2012, at 9:44 AM, Jakub Staszak wrote:
>>>> Modified: cfe/trunk/lib/CodeGen/CGExprAgg.cpp
>>>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExprAgg.cpp?rev=147664&r1=147663&r2=147664&view=diff
>>>> ==============================================================================
>>>> --- cfe/trunk/lib/CodeGen/CGExprAgg.cpp (original)
>>>> +++ cfe/trunk/lib/CodeGen/CGExprAgg.cpp Fri Jan  6 11:44:30 2012
>>>> @@ -469,7 +469,7 @@
>>>> llvm::BasicBlock *ContBlock = CGF.createBasicBlock("cond.end");
>>>> 
>>>> // Bind the common expression if necessary.
>>>> -  CodeGenFunction::OpaqueValueMapping binding(CGF, E);
>>>> +  CodeGenFunction::OpaqueValueMapping(CGF, E);
>>>> 
>>>> CodeGenFunction::ConditionalEvaluation eval(CGF);
>>>> CGF.EmitBranchOnBoolExpr(E->getCond(), LHSBlock, RHSBlock);
>>> 
>>> The obvious source of breakage here is that this is not at all semantically
>>> equivalent.  The original statement declares an object that is destroyed
>>> at the end of the scope.  Your replacement creates a temporary object
>>> which is immediately destroyed.
>> 
>> Shouldn't this be reverted then?
> 
> It was by Eli earlier IIRC.
> 
> -eric
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits




More information about the cfe-commits mailing list