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.



Reply via email to