As reported here:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99190
it fixes:
// gcc -fsanitize=shift -w // ldd a.out produces // libubsan.so.1 => /home/vitti/local/gcc-150221-undefined/lib64/libubsan.so.1 // ./a.out produces // ../../../../gcc-150221/libsanitizer/ubsan/ubsan_value.cpp:77:25: runtime error: left shift of 0x0000000000000000fffffffffffffffb by 96 places cannot be represented in type '__int128' // ubsan_value.cpp:77 -> "return SIntMax(Val) << ExtraBits >> ExtraBits;" int main (void) { 1 << -5; return 0; }