OSDN Git Service

(warn_if_unused_value): Don't warn about automatic reference dereference.
authormerrill <merrill@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 13 Feb 1995 20:02:34 +0000 (20:02 +0000)
committermerrill <merrill@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 13 Feb 1995 20:02:34 +0000 (20:02 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8932 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/stmt.c

index 73c5c9d..b4e503a 100644 (file)
@@ -1746,14 +1746,22 @@ warn_if_unused_value (exp)
        if (TREE_CODE (tem) == MODIFY_EXPR || TREE_CODE (tem) == INIT_EXPR)
          return 0;
       }
-      /* ... fall through ... */
+      goto warn;
 
+    case INDIRECT_REF:
+      /* Don't warn about automatic dereferencing of references, since
+        the user cannot control it.  */
+      if (TREE_CODE (TREE_TYPE (TREE_OPERAND (exp, 0))) == REFERENCE_TYPE)
+       return warn_if_unused_value (TREE_OPERAND (exp, 0));
+      /* ... fall through ... */
+      
     default:
       /* Referencing a volatile value is a side effect, so don't warn.  */
       if ((TREE_CODE_CLASS (TREE_CODE (exp)) == 'd'
           || TREE_CODE_CLASS (TREE_CODE (exp)) == 'r')
          && TREE_THIS_VOLATILE (exp))
        return 0;
+    warn:
       warning_with_file_and_line (emit_filename, emit_lineno,
                                  "value computed is not used");
       return 1;