On Mon, Mar 22, 2021 at 10:28:48AM -0400, Vladimir Makarov wrote: > On 2021-03-22 6:22 a.m., Richard Sandiford wrote: > >'\0' is just a normal string null terminator and so I don't think we > >should be processing it as if it were a constraint character. > >How about having a gcc_unreachable on zero instead? > > I would be nice to use gcc_unreachable but it requires to rewrite some > loops working on constraints. All the loops check 0 explicitly to stop > cycling, some of them still use CONSTRAIN_LEN for 0, e.g. code taken > from reload.c: > > switch ((c = *p, len = CONSTRAINT_LEN (c, p)), c) > { > case '\0': > len = 0; > break; > > ... > > I think we could wait stage 1 to do this.
Yes. And such gcc_unreachable should be in as high-level code as possible, not deep in some macro. Segher