On Wed, May 28, 2014 at 12:00 PM, Bernd Schmidt <ber...@codesourcery.com> wrote: > On 05/27/2014 04:57 PM, Richard Biener wrote: >> >> On Tue, May 27, 2014 at 3:13 PM, Bernd Schmidt <ber...@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.
Then fix that instead. The ptx backend shouldn't use TREE_READONLY on tcc_constant, so you can resolve the issue completely within the ptx backend anyway. Richard. > > Bernd >