blob: 5e43c89f105b6c2c5ef6fd009bf5f858d61d154d [file] [log] [blame]
/* APPLE LOCAL file ObjC direct dispatch */
/* A compile-only test for insertion of 'bla' and 'ba' sibcall comm page jumps
for methods returning 'void'. */
/* Developed by Ziemowit Laski <zlaski@apple.com> */
/* { dg-do compile { target powerpc*-*-darwin* } } */
/* { dg-options "-fnext-runtime -fobjc-gc -fobjc-direct-dispatch -Wno-assign-intercept -O2" } */
/* { dg-require-effective-target ilp32 } */
/* { dg-require-effective-target objc_gc } */
#include <objc/Object.h>
@interface Derived: Object {
@public
Object *other;
}
- (void) do_nothing;
@end
int a;
void foo(void) {
Derived *o;
[o do_nothing]; /* objc_msgSend_Fast() */
a = 2;
}
void bar(void) {
Derived *o = nil;
[o do_nothing]; /* sibcall to objc_msgSend_Fast() */
}
/* { dg-final { scan-assembler-not "objc_msgSend" } } */
/* { dg-final { scan-assembler "bla.*fffeff00" } } */
/* { dg-final { scan-assembler "ba.*fffeff00" } } */