expr.c (expand_expr, [...]): Don't check for checking memory usage if not in a function.
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>
Wed, 3 May 2000 13:20:48 +0000 (13:20 +0000)
committerRichard Kenner <kenner@gcc.gnu.org>
Wed, 3 May 2000 13:20:48 +0000 (09:20 -0400)
* expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
memory usage if not in a function.
* varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
return address if static.

From-SVN: r33629

gcc/ChangeLog
gcc/expr.c
gcc/varasm.c

index a7ec6b80a2ecc8d54149b258af6fb103fcf9cc15..67994290774bdfd2147c1f8ce1928974cba70770 100644 (file)
@@ -1,3 +1,10 @@
+Wed May  3 09:29:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
+       memory usage if not in a function.
+       * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
+       return address if static.
+
 Wed May  3 13:14:49 MET DST 2000  Jan Hubicka  <jh@suse.cz>
 
        * ifcvt.c (noce_try_cmove_arith):  Use may_trap_p to thest
index bc1bbf4bfddd19c2b6d15b6c169ab2b0ad592831..ce4ecc7eaa93f53cde322fcfd07b5b757d2ef061 100644 (file)
@@ -6734,7 +6734,8 @@ expand_expr (exp, target, tmode, modifier)
          }
 
        /* Check the access.  */
-       if (current_function_check_memory_usage && GET_CODE (op0) == MEM)
+       if (cfun != 0 && current_function_check_memory_usage
+           && GET_CODE (op0) == MEM)
           {
            enum memory_use_mode memory_usage;
            memory_usage = get_memory_usage_from_modifier (modifier);
index 0c682206aa6e5cd2c621b684c48ce77d0a1d6a0a..898b17b6a991029017ce5673ddc9cea3c1bc16ea 100644 (file)
@@ -4068,7 +4068,7 @@ initializer_constant_valid_p (value, endtype)
       return null_pointer_node;
 
     case ADDR_EXPR:
-      return TREE_OPERAND (value, 0);
+      return staticp (TREE_OPERAND (value, 0) ? TREE_OPERAND (value, 0) : 0);
 
     case NON_LVALUE_EXPR:
       return initializer_constant_valid_p (TREE_OPERAND (value, 0), endtype);