diff options
author | Andrew Pinski <pinskia@physics.uc.edu> | 2004-10-21 16:29:58 +0000 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2004-10-21 09:29:58 -0700 |
commit | 943db34743ced34d1e17686611bc6156a9087b7b (patch) | |
tree | 9a1e960bf3fcbb05dde5a7d547ebaebe89e75e97 /gcc/objc | |
parent | 5bee567d896ebb2d4ed1e636855b7e2f71832d54 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/objc/objc-act.c | 13 |
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; } |