summaryrefslogtreecommitdiffstats
path: root/gcc/objc/misc.c
diff options
context:
space:
mode:
authorkrab <krab@138bc75d-0d04-0410-961f-82ee72b054a4>1994-06-30 16:18:55 +0000
committerkrab <krab@138bc75d-0d04-0410-961f-82ee72b054a4>1994-06-30 16:18:55 +0000
commit5140bafd0b6111666c4400a070931b44d4455a76 (patch)
tree8fe61c212a5faefb5e2d0f5e09269f407fb13584 /gcc/objc/misc.c
parent7cfeba6001b20779cab6961fc29142ae09003232 (diff)
downloadppe42-gcc-5140bafd0b6111666c4400a070931b44d4455a76.tar.gz
ppe42-gcc-5140bafd0b6111666c4400a070931b44d4455a76.zip
This patch makes selectors in the Objective-C language be pointers
to a struct { void *sel_id, char *sel_types }, where the sel_types element is the type encoding of the method arguments. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7622 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/objc/misc.c')
-rw-r--r--gcc/objc/misc.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/gcc/objc/misc.c b/gcc/objc/misc.c
index 6b6b3429822..7137fdacf32 100644
--- a/gcc/objc/misc.c
+++ b/gcc/objc/misc.c
@@ -30,6 +30,12 @@ void objc_error(id object, const char* fmt, va_list);
void (*_objc_error)(id, const char*, va_list) = objc_error;
+#ifdef __alpha__
+#include <stdlib.h>
+extern int write (int, const char*, int);
+extern size_t strlen (const char*);
+#endif
+
void
objc_error(id object, const char* fmt, va_list ap)
{
@@ -40,7 +46,7 @@ objc_error(id object, const char* fmt, va_list ap)
volatile void
objc_fatal(const char* msg)
{
- write(2, msg, (size_t)strlen((char*)msg));
+ write(2, msg, (int)strlen((const char*)msg));
abort();
}
@@ -65,8 +71,12 @@ __objc_xrealloc(void* mem, size_t size)
void*
__objc_xcalloc(size_t nelem, size_t size)
{
- void* res = (void*)calloc(nelem, size);
+#ifdef __alpha__
+ extern bzero (void *, size_t);
+#endif
+ void* res = (void*)malloc(nelem * size);
if(!res)
objc_fatal("Virtual memory exhausted\n");
+ bzero (res, nelem * size);
return res;
}
OpenPOWER on IntegriCloud