On 9/13/18 1:41 PM, Bernd Edlinger wrote: > On 09/13/18 20:44, Jeff Law wrote: >> On 8/24/18 2:18 PM, Bernd Edlinger wrote: >>> Hi! >>> >>> >>> This is an alternative approach in making STRING_CST semantics >>> consistent. >>> >>> This means it makes STRING_CST used for literals and for initializers >>> use exactly the same semantics. >>> >>> It makes sure that all STRING_CST have a TYPE_SIZE_UNIT, and that it is >>> always larger than TREE_STRING_LENGTH, these and certain other properties >>> are checked in varasm.c, so the currently observed consistency issues >>> in the middle-end can be resolved. >>> >>> >>> It depends on the following pre-condition patches: >> [ ... ] >> >>> >>> [PATCHv2] Handle overlength strings in C++ FE >>> https://gcc.gnu.org/ml/gcc-patches/2018-08/msg01567.html >> I've committed this patch to the trunk. >> > > Note, however this leaves pr87503.c semi-broken: > > gcc -fpermissive -x c++ -O2 pr87053.c > pr87053.c:11:23: warning: initializer-string for array of chars is too long > [-fpermissive] > 11 | } u = {{"1234", "567"}}; > | ^ > $ ./a.out > Aborted (core dumped) > > > This would be fixed by the patch I posted earlier today: > > https://gcc.gnu.org/ml/gcc-patches/2018-09/msg00690.html I'm not done for the day :-)
jeff