Hi!
As the testcase shows, for m or similar constraints that don't accept
registers, but do accept memory, we want to call *mark_addressable on the
operand, but the call to decay_conversion can change something that was
originally addressable into something non-addressable (be it replacement
of a
On 12/11/2012 03:16 AM, Jakub Jelinek wrote:
+ if (constraint_parsed !allows_reg allows_mem)
+ operand = mark_rvalue_use (TREE_VALUE (t));
This should be mark_lvalue_use, since we're using its address rather
than its value. OK with that change.
Jason
On Tue, Dec 11, 2012 at 11:19:48AM -0500, Jason Merrill wrote:
On 12/11/2012 03:16 AM, Jakub Jelinek wrote:
+ if (constraint_parsed !allows_reg allows_mem)
+operand = mark_rvalue_use (TREE_VALUE (t));
This should be mark_lvalue_use, since we're using its address rather
than
On 12/11/2012 11:33 AM, Jakub Jelinek wrote:
I guess it depends on how would make_lvalue_use differ from make_rvalue_use
in the future. To some extent it is lvalue-ish use, but not completely,
while it is taking its address, it is fine if the operand is e.g. const,
which is wrong for lvalues.