mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-20 05:50:28 +08:00
except-1.mm: Generalize for both Objective-C runtimes.
2005-10-21 David Ayers <d.ayers@inode.at> * obj-c++.dg/except-1.mm: Generalize for both Objective-C runtimes. From-SVN: r105770
This commit is contained in:
parent
c7ba5f8dff
commit
9cd470742f
gcc/testsuite
@ -1,3 +1,7 @@
|
||||
2005-10-21 David Ayers <d.ayers@inode.at>
|
||||
|
||||
* obj-c++.dg/except-1.mm: Generalize for both Objective-C runtimes.
|
||||
|
||||
2005-10-21 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* gfortran.dg/assumed_dummy_2.f90: New test.
|
||||
|
@ -1,5 +1,4 @@
|
||||
/* { dg-do run { target "*-*-darwin*" } } */
|
||||
/* { dg-options "-framework Foundation" } */
|
||||
/* { dg-do run } */
|
||||
|
||||
/* This tests that exceptions work. It used to fail because
|
||||
objc_msgSend was marked with DECL_NOTHROW.
|
||||
@ -7,12 +6,30 @@
|
||||
that file includes objc/objc-runtime.h which explicitly prototypes
|
||||
objc_msgSend without 'nothrow'. */
|
||||
|
||||
#include <Foundation/Foundation.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifndef __NEXT_RUNTIME__
|
||||
extern "C" {
|
||||
extern id class_create_instance(Class _class);
|
||||
}
|
||||
#else
|
||||
extern "C" {
|
||||
extern id (*_zoneAlloc)(Class, unsigned int, void *);
|
||||
extern void *malloc_default_zone(void);
|
||||
}
|
||||
#endif
|
||||
|
||||
@interface RObject {
|
||||
Class isa;
|
||||
}
|
||||
+ initialize;
|
||||
+ alloc;
|
||||
- init;
|
||||
@end
|
||||
|
||||
// ObjectiveC class header
|
||||
@interface ObjCclass : NSObject {
|
||||
@interface ObjCclass : RObject {
|
||||
}
|
||||
-(void)method1;
|
||||
-(void)method2;
|
||||
@ -63,3 +80,24 @@ void CPPclass::function1()
|
||||
/* Shouldn't be here because we threw. */
|
||||
abort ();
|
||||
}
|
||||
|
||||
@implementation RObject
|
||||
+ initialize
|
||||
{
|
||||
return self;
|
||||
}
|
||||
|
||||
- init
|
||||
{
|
||||
return self;
|
||||
}
|
||||
|
||||
+ alloc
|
||||
{
|
||||
#ifndef __NEXT_RUNTIME__
|
||||
return class_create_instance(self);
|
||||
#else
|
||||
return (*_zoneAlloc)((Class)self, 0, malloc_default_zone());
|
||||
#endif
|
||||
}
|
||||
@end
|
||||
|
Loading…
x
Reference in New Issue
Block a user