aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2004-07-01 19:45:28 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2004-07-01 15:45:28 -0400
commit1e748a2b15347a0e5c9fd525218233abd773b46e (patch)
tree525629489add52675bfec66f2826068c0530d833 /gcc
parent8e6b96d398270fe98716792740ac2d50d2a464c4 (diff)
downloadgcc-1e748a2b15347a0e5c9fd525218233abd773b46e.zip
gcc-1e748a2b15347a0e5c9fd525218233abd773b46e.tar.gz
gcc-1e748a2b15347a0e5c9fd525218233abd773b46e.tar.bz2
* gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
From-SVN: r83998
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog2
-rw-r--r--gcc/gimplify.c6
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1850bc8..2ac7f33 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,7 @@
2004-07-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+ * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
+
* tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
access functions for lower bound and element size and only output
if lower bound nonzero or element size not same as that of type.
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index e8fdbe9..ed1af19 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -4069,8 +4069,12 @@ void
gimplify_one_sizepos (tree *expr_p, tree *stmt_p)
{
/* We don't do anything if the value isn't there, is constant, or contains
- A PLACEHOLDER_EXPR. */
+ A PLACEHOLDER_EXPR. We also don't want to do anything if it's already
+ a VAR_DECL. If it's a VAR_DECL from another function, the gimplfier
+ will want to replace it with a new variable, but that will cause problems
+ if this type is from outside the function. It's OK to have that here. */
if (*expr_p == NULL_TREE || TREE_CONSTANT (*expr_p)
+ || TREE_CODE (*expr_p) == VAR_DECL
|| CONTAINS_PLACEHOLDER_P (*expr_p))
return;