http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53524

--- Comment #8 from Manuel López-Ibáñez <manu at gcc dot gnu.org> 2012-05-30 
16:29:08 UTC ---
(In reply to comment #6)
> The warnings are an unintended effect of my fix for PR16603.

So, before your fix, same_type_p was returning true? 

enum { e1 = -1 };
enum { e2 = -1 };

int j;
void foo(void) {
  j = 0 ? e1 : e2;
}

g++ 4.3.2
tt.cc:6: warning: enumeral mismatch in conditional expression: ‘<anonymous
enum>’ vs ‘<anonymous enum>’

So, the warning is intended, and the fact that we did not warn before was a
bug. However, it is not clear to me how this code can be dangerous. But the
warning is very very old.

r29056 | nathan | 1999-09-02 11:21:42 +0200 (Thu, 02 Sep 1999) | 4 lines

        * call.c (build_conditional_expr): Warn on enum mismatches.
        (convert_arg_to_ellipsis): Move non-pod check to after
        conversion.

Reply via email to