Mark more constants readonly

Bernd Schmidt bernds@codesourcery.com
Wed May 28 10:00:00 GMT 2014


On 05/27/2014 04:57 PM, Richard Biener wrote:
> On Tue, May 27, 2014 at 3:13 PM, Bernd Schmidt <bernds@codesourcery.com> wrote:
>> I noticed that string constants built by the Fortran frontend don't set
>> TREE_READONLY for STRING_CST (and subsequently noticed that nothing seems to
>> set it for COMPLEX_CST). That was confusing the ptx backend I'm working on.
>> The -fwritable-strings option for C was removed a while ago, so I tested the
>> following patch to just set the flag unconditionally, and passed bootstrap
>> and test on x86_64-linux. Ok?
>
> Hmm?  Not so obvious.  TREE_READONLY has no purpose on tcc_constant
> nodes if I read documentation correctly (tree.h).  In fact
> base.readonly_flag is unused for tcc_constant (and would be redundant
> with TREE_CONSTANT).

Well, the C frontend still sets it for strings (in fix_string_type), and 
gcc.dg/lvalue-5.c fails if that is removed. So things are a little 
inconsistent between frontends.


Bernd



More information about the Gcc-patches mailing list