https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90885
Dominik Czarnota <dominik.b.czarnota+bugzilla at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dominik.b.czarnota+bugzilla
| |@gmail.com
--- Comment #19 from Dominik Czarnota <dominik.b.czarnota+bugzilla at gmail dot
com> ---
Also what if:
1. Someone does it through DEFINEs as in:
```
#define COMPUTING_BASE 2
#define BITS 32
// and later use
COMPUTING_BASE ^ (BITS-1)
```
I guess we will warn.
2. Someone does it through constexpr variables in C++, as in:
```
constexpr int COMPUTING_BASE = 2;
constexpr int BITS = 32;
// and later use
COMPUTING_BASE ^ (BITS-1)
```
This probably happens on a different level than the above, so we probably won't
warn as it doesn't use integer literals?
3. Someone *really wants it*?
Maybe there should be a way to inform the compiler, e.g. via a comment to
suppress the warning for a given line? For example:
```
printf("%d\n", 2^32 /* explicit-xor */);
```
Offtopic: if you care about adding more warnings in tragic situations, you
might also want to look at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88000
;)