arphaman added inline comments.

================
Comment at: lib/CodeGen/CGExprComplex.cpp:163
+        else
+          CGF.EmitLValue(ME->getBase());
+        return *Constant;
----------------
rjmccall wrote:
> rjmccall wrote:
> > There's an EmitIgnoredExpr you could use.
> > 
> > Also, I think it would be fine to add a generic tryEmitMemberExprAsConstant 
> > that takes a MemberExpr and does this DRE stuff behind the scenes; it's not 
> > at all different for the different emitters.
> Well, actually, now I see why it's different for the complex emitter, but I 
> think you could probably extract out a function that forms a complex pair 
> from a constant output without too much trouble.
> 
> Also, as long as you're working with this, I think it's likely that the Agg 
> emitter needs to handle this, too.  I'm not sure I accept the claim there 
> that constant r-value emission never applies to aggregates, but at the very 
> least you need to handle references just as the DRE case does.
It looks like that constant reference code in Agg emitter is dead, so I removed 
it. 

The static constant variables that were references to aggregates were still 
inconsistent between DREs and MEs, so I now try to emit MEs as DREs in 
CodeGenFunction's Lvalue emitter now.


Repository:
  rL LLVM

https://reviews.llvm.org/D36876



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to