OSDN Git Service

(convert): If main variants match,
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 31 Jul 1992 06:13:07 +0000 (06:13 +0000)
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 31 Jul 1992 06:13:07 +0000 (06:13 +0000)
but the type is not identical, make a NOP_EXPR.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@1725 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/c-convert.c

index f03a786..86ce2c5 100644 (file)
@@ -371,9 +371,11 @@ convert (type, expr)
   register tree e = expr;
   register enum tree_code code = TREE_CODE (type);
 
-  if (type == TYPE_MAIN_VARIANT (TREE_TYPE (expr))
+  if (type == TREE_TYPE (expr)
       || TREE_CODE (expr) == ERROR_MARK)
     return expr;
+  if (TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (TREE_TYPE (expr)))
+    return build1 (NOP_EXPR, type, expr);
   if (TREE_CODE (TREE_TYPE (expr)) == ERROR_MARK)
     return error_mark_node;
   if (TREE_CODE (TREE_TYPE (expr)) == VOID_TYPE)