diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2004-11-19 18:01:54 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@gcc.gnu.org> | 2004-11-19 18:01:54 +0000 |
commit | 0e1ad529d715d705d1d4f8dbc188a52a3a570637 (patch) | |
tree | 92c1666170014e9d1f804e9f4ae4f881f22c7b57 /gcc/testsuite | |
parent | 075523c69fec880d83efa91c773fb5a602968a6c (diff) | |
download | gcc-0e1ad529d715d705d1d4f8dbc188a52a3a570637.zip gcc-0e1ad529d715d705d1d4f8dbc188a52a3a570637.tar.gz gcc-0e1ad529d715d705d1d4f8dbc188a52a3a570637.tar.bz2 |
No darwin non-lazy-ptr for address calculatation when not needed.
OKed by Geoff Keating.
From-SVN: r90925
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/gcc.dg/lazy-ptr-test.c | 18 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/non-lazy-ptr-test.c | 40 |
2 files changed, 58 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/lazy-ptr-test.c b/gcc/testsuite/gcc.dg/lazy-ptr-test.c new file mode 100644 index 0000000..da66b51 --- /dev/null +++ b/gcc/testsuite/gcc.dg/lazy-ptr-test.c @@ -0,0 +1,18 @@ +/* { dg-do compile { target powerpc*-apple-darwin* } } */ +/* { dg-options "-S" } */ + +void f () __attribute__((weak_import)); + +typedef void PF (void); + +void f(void){}; + +PF* g (void) { return f; } + +int main() +{ + (*g())(); + return 0; +} + +/* { dg-final { scan-assembler "non_lazy_ptr" } } */ diff --git a/gcc/testsuite/gcc.dg/non-lazy-ptr-test.c b/gcc/testsuite/gcc.dg/non-lazy-ptr-test.c new file mode 100644 index 0000000..e496784 --- /dev/null +++ b/gcc/testsuite/gcc.dg/non-lazy-ptr-test.c @@ -0,0 +1,40 @@ +/* { dg-do compile { target powerpc*-apple-darwin* } } */ +/* { dg-options "-S" } */ + +typedef void PF (void); + +static void f(void) { +} + +void f1(void) { +} + +extern void f2(void) { +} + +static void f3(void); + +__private_extern__ void pe(void) +{ +} + +PF* g (void) { f(); return f; } +PF* x (void) { return f1; } +PF* y (void) { f2(); return f2; } +PF* z (void) { return f3; } +PF* w (void) { pe(); return pe; } + +int main() +{ + (*g())(); + (*x())(); + (*y())(); + (*z())(); + (*w())(); + return 0; +} + +void f3(void) { +} + +/* { dg-final { scan-assembler-not "non_lazy_ptr" } } */ |