On Wed, Nov 02, 2022 at 06:27:46AM -1000, 'Tejun Heo' wrote:
On Wed, Nov 02, 2022 at 08:35:34AM +0000, David Laight wrote:
I think the enums have to be split.
There will be other side effects of promoting the constants to 64bit
that are much more difficult to detect than the warnings from printf.
idk, I think I can just add LLU to everything and it should be fine.
I'm also not sure whether the type is even consistent for 32bit
and 64bit builds.
Casts are (sort of) horrid.
Yeah, I don't think casts are the solution either. Lemme add LLU to
everything and see how it works.
So adding LLU to initializers don't make the specific enum's type follow
suit. I guess type determination is really based on the value range. Oh man,
what a mess.
If we end up having to split the enum defs, that's what we'll do but this
doesn't sense to me. It's one thing to make one time adjustment when we
adopt -std=g2x. That's fine, but it makes no sense for the compiler to
change type behavior underneath existing code bases in a way that prevents
the same code to mean the same thing in adjacent and recent compiler
versions. Even if gcc goes for that for whatever reason, there gotta be an
option to keep the original behavior, right?
If so, my suggestion is just sticking with the old behavior until we switch
to --std=g2x and then make one time adjustment at that point.