On Thu, 29 Oct 2020, Jan Hubicka wrote: > > > > That's ugly and will for sure defeat warning / access code > > when we access this as char[], no? I mean, we could > > as well use 'int str[1];' here? > > Well, we always get char pointer via macro that is IMO OK, but I am also > not very much in love with this. > > > > Maybe we can invent some C++ attribute for this? > > > > [[gnu::string]] > > > > or so that marks it as actual char and not typeless storage? > > Attribute would probably make sense. Not sure if gnu::string is best > name given that it can be also meaningful for array of small integers > (such as in wide_int).
OK, maybe [[gnu::strictly_typed]] then? > Honza > > > > Richard. > > > > > }; > > > > > > struct GTY(()) tree_complex { > > > diff --git a/gcc/tree.c b/gcc/tree.c > > > index 81f867ddded..84115630184 100644 > > > --- a/gcc/tree.c > > > +++ b/gcc/tree.c > > > @@ -2273,7 +2273,7 @@ build_string (unsigned len, const char *str /*= > > > NULL */) > > > memcpy (s->string.str, str, len); > > > else > > > memset (s->string.str, 0, len); > > > - s->string.str[len] = '\0'; > > > + s->string.str[len].c = '\0'; > > > > > > return s; > > > } > > > > > > > -- > > Richard Biener <rguent...@suse.de> > > SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 Nuernberg, > > Germany; GF: Felix Imend > -- Richard Biener <rguent...@suse.de> SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany; GF: Felix Imend