summaryrefslogtreecommitdiff
path: root/libobjc
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2000-04-12 07:22:32 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2000-04-12 07:22:32 +0000
commit3c2f1b0683ab9720add6e39c6c851d393b8d1d49 (patch)
tree684ed6f94cfd06b71d423351cb97d7090ec8117c /libobjc
parente9d99b036256d4468677d21138b81ead585a3bfe (diff)
downloadgcc-3c2f1b0683ab9720add6e39c6c851d393b8d1d49.tar.gz
* objc/objc-act.c: Include ggc.h.
(objc_tree_index, objc_global_trees): Convert most of the static tree variables into a static array with previous names as defines. (objc_ellipsis_node): New variable. (lang_init): Call objc_act_parse_init and c_parse_init. Create objc_ellipsis_node. (build_selector_translation_table): Use objc_ellipsis_node instead of (tree)1. (hack_method_prototype): Likewise. (get_arg_type_list): Likewise. (start_method_def): Likewise. (continue_method_def): Likewise. (gen_method_decl): Likewise. (ggc_mark_imp_list): New function. (ggc_mark_hash_table): New function. (objc_act_parse_init): New function. * objc/objc-act.h (objc_ellipsis_node): Add extern variable. * c-parse.in (c_parse_init): For objc add roots of objc specific local tree variables. * objc/objc-parse.y: Rebuilt. * objc/objc-parse.c: Rebuilt. (opt_parm_list): Use objc_ellipsis_node instead of (tree)1. * Object.m (strlen): Provide prototype on all 64bit platforms, not only alpha. * sarray.c (memcpy): Likewise. * encoding.c (objc_layout_finish_structure): Don't use ROUND_TYPE_ALIGN on sparc. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33092 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libobjc')
-rw-r--r--libobjc/ChangeLog8
-rw-r--r--libobjc/Object.m2
-rw-r--r--libobjc/encoding.c2
-rw-r--r--libobjc/sarray.c2
4 files changed, 11 insertions, 3 deletions
diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog
index d09f4108ad5..abab0b9b409 100644
--- a/libobjc/ChangeLog
+++ b/libobjc/ChangeLog
@@ -1,3 +1,11 @@
+2000-04-12 Jakub Jelinek <jakub@redhat.com>
+
+ * Object.m (strlen): Provide prototype on all 64bit platforms,
+ not only alpha.
+ * sarray.c (memcpy): Likewise.
+ * encoding.c (objc_layout_finish_structure): Don't use
+ ROUND_TYPE_ALIGN on sparc.
+
2000-03-29 Zack Weinberg <zack@wolery.cumb.org>
* objc/Protocol.h, objc/objc-list.h: Change #endif labels to
diff --git a/libobjc/Object.m b/libobjc/Object.m
index 64b52f48368..59851c14fb1 100644
--- a/libobjc/Object.m
+++ b/libobjc/Object.m
@@ -320,7 +320,7 @@ extern int errno;
object_get_class_name(self), sel_get_name(aSel)];
}
-#ifdef __alpha__
+#if defined(__alpha__) || (defined(__sparc__) && (defined(__sparcv9) || defined(__arch64__))) || (defined(__ia64__) && defined(__LP64__))
extern size_t strlen(const char*);
#endif
diff --git a/libobjc/encoding.c b/libobjc/encoding.c
index 4749ba026e9..dde009cea38 100644
--- a/libobjc/encoding.c
+++ b/libobjc/encoding.c
@@ -878,7 +878,7 @@ void objc_layout_finish_structure (struct objc_struct_layout *layout,
in the record type. Round it up to a multiple of the record's
alignment. */
-#ifdef ROUND_TYPE_ALIGN
+#if defined(ROUND_TYPE_ALIGN) && !defined(__sparc__)
layout->record_align = ROUND_TYPE_ALIGN (layout->original_type,
1,
layout->record_align);
diff --git a/libobjc/sarray.c b/libobjc/sarray.c
index f5ace10bf09..a71432ea59f 100644
--- a/libobjc/sarray.c
+++ b/libobjc/sarray.c
@@ -44,7 +44,7 @@ const char* __objc_sparse2_id = "2 level sparse indices";
const char* __objc_sparse3_id = "3 level sparse indices";
#endif
-#ifdef __alpha__
+#if defined(__alpha__) || (defined(__sparc__) && (defined(__sparcv9) || defined(__arch64__))) || (defined(__ia64__) && defined(__LP64__))
const void *memcpy (void*, const void*, size_t);
#endif