diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2212bac341c..3fb28e50bbd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2002-09-26 David S. Miller + + 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 * dbxout.c (FORCE_TEXT): Switch to current_function_decl, not diff --git a/gcc/calls.c b/gcc/calls.c index d4e3f009589..ffedacabbb0 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)