The point is very specifically cases where X is a decimal literal (not an expression such as 1 << x, or a hex number).
Things that resolve to this don't trigger the warning, and it is a compile time warning.
And then specifically looking at 2^X and 10^X occurring in source code.