Richard Biener wrote: > +embedded @code{NUL} characters. However, the > +@code{TREE_STRING_LENGTH} always includes a trailing @code{NUL} that > +is not part of the language string literal but appended by the front end. > +If the string shall not be @code{NUL}-terminated the @code{TREE_TYPE} > +is one character shorter than @code{TREE_STRING_LENGTH}. > +Excess caracters other than one trailing @code{NUL} character are not > +permitted. > > I find this very confusing and oppose to that change. Can we get > back to the drawing board please? If we want an easy way to > see whether a string is "properly" terminated then maybe we can > simply use a flag that gets set by build_string? >
What I mean with that is the case like char x[2] = "123456"; which is build_string(7, "123456"), but with a type char[2], so varasm throws away "3456\0". I want to say that this is not okay, the excess precision should only be used to strip the nul termination, in cases where it is intended to be a assembled as a not zero terminated string. But maybe the wording could be improved? Bernd.