aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/optimize.c4
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 87a279d..3c75429 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2000-04-30 Mark Mitchell <mark@codesourcery.com>
+
+ * optimize.c (initialize_inlined_parameters): If the parameter is
+ addressable, we need to make a new VAR_DECL, even if the
+ initializer is constant.
+
2000-04-28 Cosmin Truta <cosmint@cs.ubbcluj.ro>
* decl.c (grok_op_properties): Add an extra check of argtypes.
diff --git a/gcc/cp/optimize.c b/gcc/cp/optimize.c
index 9863d4a..e683f7e 100644
--- a/gcc/cp/optimize.c
+++ b/gcc/cp/optimize.c
@@ -392,7 +392,9 @@ initialize_inlined_parameters (id, args, fn)
/* If the parameter is never assigned to, we may not need to
create a new variable here at all. Instead, we may be able
to just use the argument value. */
- if (TREE_READONLY (p) && !TREE_SIDE_EFFECTS (value))
+ if (TREE_READONLY (p)
+ && !TREE_ADDRESSABLE (p)
+ && !TREE_SIDE_EFFECTS (value))
{
/* Simplify the value, if possible. */
value = fold (decl_constant_value (value));