aboutsummaryrefslogtreecommitdiff
path: root/gcc/objc
diff options
context:
space:
mode:
authorAndrew Pinski <pinskia@physics.uc.edu>2004-10-21 16:29:58 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2004-10-21 09:29:58 -0700
commit943db34743ced34d1e17686611bc6156a9087b7b (patch)
tree9a1e960bf3fcbb05dde5a7d547ebaebe89e75e97 /gcc/objc
parent5bee567d896ebb2d4ed1e636855b7e2f71832d54 (diff)
downloadgcc-943db34743ced34d1e17686611bc6156a9087b7b.zip
gcc-943db34743ced34d1e17686611bc6156a9087b7b.tar.gz
gcc-943db34743ced34d1e17686611bc6156a9087b7b.tar.bz2
re PR objc/17923 (const-str-[34].m fails on the mainline (next runtime))
2004-10-21 Andrew Pinski <pinskia@physics.uc.edu> PR objc/17923 * tree.c (staticp): A CONST_DECL has static storage if either TREE_STATIC or DECL_EXTERNAL is set. * c-decl.c (pushdecl_top_level): Accept CONST_DECLs which can have null names. 2004-10-21 Andrew Pinski <pinskia@physics.uc.edu> PR objc/17923 * objc-act.c (objc_build_string_object): Create a CONST_DECL for the NeXT runtime case. 2004-10-21 Andrew Pinski <pinskia@physics.uc.edu> PR objc/17923 * objc.dg/const-str-7.m: New test. From-SVN: r89384
Diffstat (limited to 'gcc/objc')
-rw-r--r--gcc/objc/ChangeLog6
-rw-r--r--gcc/objc/objc-act.c13
2 files changed, 15 insertions, 4 deletions
diff --git a/gcc/objc/ChangeLog b/gcc/objc/ChangeLog
index 734f74d..b904fa0 100644
--- a/gcc/objc/ChangeLog
+++ b/gcc/objc/ChangeLog
@@ -1,3 +1,9 @@
+2004-10-21 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR objc/17923
+ * objc-act.c (objc_build_string_object): Create a CONST_DECL
+ for the NeXT runtime case.
+
2004-10-02 Kazu Hirata <kazu@cs.umass.edu>
* objc-act.c: Fix comment typos.
diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c
index e530f2c..3455095 100644
--- a/gcc/objc/objc-act.c
+++ b/gcc/objc/objc-act.c
@@ -1661,6 +1661,7 @@ objc_build_string_object (tree string)
if (!desc)
{
+ tree var;
*loc = desc = ggc_alloc (sizeof (*desc));
desc->literal = string;
@@ -1685,14 +1686,18 @@ objc_build_string_object (tree string)
if (!flag_next_runtime)
constructor
= objc_add_static_instance (constructor, constant_string_type);
-
+ else
+ {
+ var = build_decl (CONST_DECL, NULL, TREE_TYPE (constructor));
+ DECL_INITIAL (var) = constructor;
+ TREE_STATIC (var) = 1;
+ pushdecl_top_level (var);
+ constructor = var;
+ }
desc->constructor = constructor;
}
addr = build_unary_op (ADDR_EXPR, desc->constructor, 1);
- TREE_CONSTANT (addr) = true;
- TREE_INVARIANT (addr) = true;
- TREE_STATIC (addr) = true;
return addr;
}