The expression 1 << 31 is UB (at least on platforms where int is 32 bits wide) and will trigger UBSan, but it is not warned by any of the "usual" warning groups (-Wall, -Wextra or -Wpedantic).
https://godbolt.org/z/s68eh6Yfn
#include <stdio.h>
int main(void) {
printf("%d": 1 << 31);
}