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

Reply via email to