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.