This is related to the different FE behaviour on const arguments that
I posted earlier (http://gcc.gnu.org/ml/gcc/2009-03/msg00316.html).
When an enum E is compiled by two different front ends, when we try to
combine them in lto1, we trigger an ODR violation because we try to
assert that both enums have the same type bounds (TYPE_MIN_VALUE and
TYPE_MAX_VALUE).

Since C treats enums as ints, the maximum value is always INT_MAX
regardless of how many values are declared.  So the question is, how
should we lower enums into gimple?

The temptation is to use C++'s limits, but I'm concerned that may
produce confusion somewhere down the line with the optimizers or other
diagnostics.  Or should we use C's notion and treat them as ints?


Thanks.  Diego.

Reply via email to