> From: James E Wilson <[EMAIL PROTECTED]>
>> - One of the things that's been eluding me, is that I can't seem to find
>>   where literal string constant mem references aren't being properly
>>   declared and/or preserved as READONLY/unchanging references, resulting
>>   in MEM_READONLY_P failing to identify them; although literal char array
>>   references, which seem logically equivalent, do seem to be properly
>>   declared/preserved?
> 
> The tree to RTL conversion happens in expand_expr.  Just search for
> STRING_CST in that function and then follow the call chain in the
> debugger til you find the place that is trying to set RTX_UNCHANGING_P.
>    Old code set it unconditionally, but current code is a bit more
> complciated.  Maybe there is something wrong with the new code.

Thanks. After going through the code, it's even further not clear why
STRING_CST string literal data references treated differently than
static const char array literal data references to begin with?

Why is this necessary?

(As if they weren't, it would seem that both a lot of code could simply be
deleted, and any odd issues resulting from the distinction would disappear?)



Reply via email to