https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90885
--- Comment #11 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
Warning for "2 ^ INT" seems reasonable, maybe just for that (I think I agree
with comment #6).
Not sure what to call it: "-Wexclusive-or"???
I think we'd want to *not* warn if either of the operands are from a macro
expansion.
I think both operands ought to be decimal integers to trigger the warning.
I like the wording from comment #2: "2 ^ 30 is 28, not 1073741824.", to make it
clear what's going on (I hope).
Other idea: fix-it hints.
So maybe something like:
t.c:10:5: warning: '2^30' is 28; did you mean '1<<30' (1073741824)
[-Wexclusive-or]
log.Infof("Setting total memory to %.2f GB", float64(args.TotalMem)/(2^30))
~^~~
1<<30
or somesuch.