aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-02-28 07:37:26 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1994-02-28 07:37:26 -0500
commit68de38314c2ee87564672eeb4e3cbb6d634d1442 (patch)
tree05c3a66cf723f258f22f0d64cfc682256422a7bf /gcc
parent72ba655679d88cd4f5bb2bbd716a6c44e2170394 (diff)
downloadgcc-68de38314c2ee87564672eeb4e3cbb6d634d1442.zip
gcc-68de38314c2ee87564672eeb4e3cbb6d634d1442.tar.gz
gcc-68de38314c2ee87564672eeb4e3cbb6d634d1442.tar.bz2
(variable_size): If global_bindings_p < 0, don't even make the
SAVE_EXPR. From-SVN: r6674
Diffstat (limited to 'gcc')
-rw-r--r--gcc/stor-layout.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c
index 0977b84..8b464a3 100644
--- a/gcc/stor-layout.c
+++ b/gcc/stor-layout.c
@@ -1,5 +1,5 @@
/* C-compiler utilities for types and variables storage layout
- Copyright (C) 1987, 1988, 1992, 1993 Free Software Foundation, Inc.
+ Copyright (C) 1987, 1988, 1992, 1993, 1994 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -82,15 +82,15 @@ tree
variable_size (size)
tree size;
{
- size = save_expr (size);
-
/* If the language-processor is to take responsibility for variable-sized
items (e.g., languages which have elaboration procedures like Ada),
just return SIZE unchanged. */
if (global_bindings_p () < 0)
return size;
- else if (global_bindings_p ())
+ size = save_expr (size);
+
+ if (global_bindings_p ())
{
if (TREE_CONSTANT (size))
error ("type size can't be explicitly evaluated");