https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109442
--- Comment #25 from Jan Hubicka <hubicka at ucw dot cz> --- > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109442 > > --- Comment #24 from Jason Merrill <jason at gcc dot gnu.org> --- > (In reply to Jan Hubicka from comment #23) > > So I guess we are missing somewhere __builtin_assert that the length of > > vector copied is allways smaller then half of address space... > > Or the compiler could conclude that the result of subtracting two pointers > (which must point into the same array) is always small enough. Sounds like missed VRP, so I am adding Andrew. We may also remove conditional guarding __builtin_unreachable and having values otherwise unused as useless at some point. This can be done easily by DCE. However They may be stil used if the conditional is optimized, so I am not sure this is desrable. Honza