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

Manuel López-Ibáñez <manu at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |manu at gcc dot gnu.org

--- Comment #3 from Manuel López-Ibáñez <manu at gcc dot gnu.org> ---
I don't even understand what this code is trying to warn about:

      if (TREE_CODE (arg2_type) == ENUMERAL_TYPE
      && TREE_CODE (arg3_type) == ENUMERAL_TYPE)
        {
      if (TREE_CODE (orig_arg2) == CONST_DECL
          && TREE_CODE (orig_arg3) == CONST_DECL
          && DECL_CONTEXT (orig_arg2) == DECL_CONTEXT (orig_arg3))
        /* Two enumerators from the same enumeration can have different
           types when the enumeration is still being defined.  */;
          else if (complain & tf_warning)
            warning_at (loc, OPT_Wenum_compare, "enumeral mismatch in "
            "conditional expression: %qT vs %qT",
            arg2_type, arg3_type);
        }

What is the DECL_CONTEXT check doing there?

Reply via email to