https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99190
Bug ID: 99190 Summary: Undefined behaviour in libubsan Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: sanitizer Assignee: unassigned at gcc dot gnu.org Reporter: zeccav at gmail dot com CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org, jakub at gcc dot gnu.org, kcc at gcc dot gnu.org, marxin at gcc dot gnu.org Target Milestone: --- // 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; }