aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDavid S. Miller <davem@redhat.com>2002-09-26 21:12:51 -0700
committerDavid S. Miller <davem@gcc.gnu.org>2002-09-26 21:12:51 -0700
commit99a32567965f9ec5f1815eb5474e86c7fa39cd07 (patch)
treeabb46a6de625dc88ef09efa6b62a0fab9364f5a5 /gcc
parent67cef334cce4159cc4de8543ffcc399bfb6c94be (diff)
downloadgcc-99a32567965f9ec5f1815eb5474e86c7fa39cd07.zip
gcc-99a32567965f9ec5f1815eb5474e86c7fa39cd07.tar.gz
gcc-99a32567965f9ec5f1815eb5474e86c7fa39cd07.tar.bz2
re PR rtl-optimization/7335 (Sparc: ICE in verify_wide_reg (flow.c:557) with long double and optimization)
2002-09-26 David S. Miller <davem@redhat.com> PR optimization/7335 * calls.c (emit_library_call_value_1): Passing args by reference converts a CONST function into a PURE one. From-SVN: r57576
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/calls.c8
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2212bac..3fb28e5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2002-09-26 David S. Miller <davem@redhat.com>
+
+ PR optimization/7335
+ * calls.c (emit_library_call_value_1): Passing args by reference
+ converts a CONST function into a PURE one.
+
2002-09-26 David Edelsohn <edelsohn@gnu.org>
* dbxout.c (FORCE_TEXT): Switch to current_function_decl, not
diff --git a/gcc/calls.c b/gcc/calls.c
index d4e3f00..ffedaca 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -3684,6 +3684,14 @@ emit_library_call_value_1 (retval, orgfun, value, fn_type, outmode, nargs, p)
}
flags &= ~(ECF_CONST | ECF_PURE | ECF_LIBCALL_BLOCK);
+ /* If this was a CONST function, it is now PURE since
+ it now reads memory. */
+ if (flags & ECF_CONST)
+ {
+ flags &= ~ECF_CONST;
+ flags |= ECF_PURE;
+ }
+
if (GET_MODE (val) == MEM && ! must_copy)
slot = val;
else if (must_copy)