fold-const.c (fold): Don't require strict type equality...
[gcc.git] / gcc / fold-const.c
index 556593243ac335609593fb8f0f95b95cd45e4d94..7a939c4966658545711035d13c1496bc819f3cde 100644 (file)
@@ -7869,7 +7869,8 @@ fold (tree expr)
          /* Only optimize constant conditions when the selected branch
             has the same type as the COND_EXPR.  This avoids optimizing
             away "c ? x : throw", where the throw has a void type.  */
-         if (TREE_TYPE (tem) == TREE_TYPE (t))
+         if (! VOID_TYPE_P (TREE_TYPE (tem))
+             || VOID_TYPE_P (TREE_TYPE (t)))
            return pedantic_non_lvalue (tem);
          return t;
        }