summaryrefslogtreecommitdiff
path: root/gcc/objc
diff options
context:
space:
mode:
authorpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>2005-09-01 01:32:10 +0000
committerpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>2005-09-01 01:32:10 +0000
commit1cff51e380fef6a08d3149143cd57f2152f83380 (patch)
tree9a5131e1306d24a045845b0ecb18a40958398215 /gcc/objc
parent9dd3a4f6f2a79de2ef525fc228a35f9d527d7324 (diff)
downloadgcc-1cff51e380fef6a08d3149143cd57f2152f83380.tar.gz
2005-08-31 Andrew Pinski <pinskia@physics.uc.edu>
PR objc/23306 * objc-act.c (generate_strings): Remove and move code to finish decl to ... (add_objc_string): here when creating a new string decl. (finish_objc): Don't call generate_strings. 2005-08-31 Andrew Pinski <pinskia@physics.uc.edu> PR objc/23306 * objc.dg/image-info.m: Remove "objc_module_info" check part of the scan-assmbler. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103713 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/objc')
-rw-r--r--gcc/objc/ChangeLog8
-rw-r--r--gcc/objc/objc-act.c70
2 files changed, 19 insertions, 59 deletions
diff --git a/gcc/objc/ChangeLog b/gcc/objc/ChangeLog
index fdb8c57958d..a66a772546f 100644
--- a/gcc/objc/ChangeLog
+++ b/gcc/objc/ChangeLog
@@ -1,5 +1,13 @@
2005-08-31 Andrew Pinski <pinskia@physics.uc.edu>
+ PR objc/23306
+ * objc-act.c (generate_strings): Remove and move code to
+ finish decl to ...
+ (add_objc_string): here when creating a new string decl.
+ (finish_objc): Don't call generate_strings.
+
+2005-08-31 Andrew Pinski <pinskia@physics.uc.edu>
+
PR objc/23381
* objc-act.c (next_sjlj_build_try_catch_finally): Set
TREE_SIDE_EFFECTS on catch_seq after building it.
diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c
index 7d3fb2672fb..f5a8441b312 100644
--- a/gcc/objc/objc-act.c
+++ b/gcc/objc/objc-act.c
@@ -2448,60 +2448,6 @@ generate_static_references (void)
finish_var_decl (static_instances_decl, expr);
}
-/* Output all strings. */
-
-static void
-generate_strings (void)
-{
- tree chain, string_expr;
- tree string, decl, type;
-
- for (chain = class_names_chain; chain; chain = TREE_CHAIN (chain))
- {
- string = TREE_VALUE (chain);
- decl = TREE_PURPOSE (chain);
- type = build_array_type
- (char_type_node,
- build_index_type
- (build_int_cst (NULL_TREE,
- IDENTIFIER_LENGTH (string))));
- decl = start_var_decl (type, IDENTIFIER_POINTER (DECL_NAME (decl)));
- string_expr = my_build_string (IDENTIFIER_LENGTH (string) + 1,
- IDENTIFIER_POINTER (string));
- finish_var_decl (decl, string_expr);
- }
-
- for (chain = meth_var_names_chain; chain; chain = TREE_CHAIN (chain))
- {
- string = TREE_VALUE (chain);
- decl = TREE_PURPOSE (chain);
- type = build_array_type
- (char_type_node,
- build_index_type
- (build_int_cst (NULL_TREE,
- IDENTIFIER_LENGTH (string))));
- decl = start_var_decl (type, IDENTIFIER_POINTER (DECL_NAME (decl)));
- string_expr = my_build_string (IDENTIFIER_LENGTH (string) + 1,
- IDENTIFIER_POINTER (string));
- finish_var_decl (decl, string_expr);
- }
-
- for (chain = meth_var_types_chain; chain; chain = TREE_CHAIN (chain))
- {
- string = TREE_VALUE (chain);
- decl = TREE_PURPOSE (chain);
- type = build_array_type
- (char_type_node,
- build_index_type
- (build_int_cst (NULL_TREE,
- IDENTIFIER_LENGTH (string))));
- decl = start_var_decl (type, IDENTIFIER_POINTER (DECL_NAME (decl)));
- string_expr = my_build_string (IDENTIFIER_LENGTH (string) + 1,
- IDENTIFIER_POINTER (string));
- finish_var_decl (decl, string_expr);
- }
-}
-
static GTY(()) int selector_reference_idx;
static tree
@@ -2820,7 +2766,7 @@ objc_get_class_reference (tree ident)
static tree
add_objc_string (tree ident, enum string_section section)
{
- tree *chain, decl;
+ tree *chain, decl, type, string_expr;
if (section == class_names)
chain = &class_names_chain;
@@ -2841,6 +2787,16 @@ add_objc_string (tree ident, enum string_section section)
}
decl = build_objc_string_decl (section);
+
+ type = build_array_type
+ (char_type_node,
+ build_index_type
+ (build_int_cst (NULL_TREE,
+ IDENTIFIER_LENGTH (ident))));
+ decl = start_var_decl (type, IDENTIFIER_POINTER (DECL_NAME (decl)));
+ string_expr = my_build_string (IDENTIFIER_LENGTH (ident) + 1,
+ IDENTIFIER_POINTER (ident));
+ finish_var_decl (decl, string_expr);
*chain = tree_cons (decl, ident, NULL_TREE);
@@ -9226,10 +9182,6 @@ finish_objc (void)
for (impent = imp_list; impent; impent = impent->next)
handle_impent (impent);
- /* Dump the string table last. */
-
- generate_strings ();
-
if (warn_selector)
{
int slot;