From: Iain Sandoe Date: Thu, 20 Jun 2019 19:15:58 +0000 (+0000) Subject: [objective-c/c++, testsuite] Fix stubify tests for -fnext-runtime. X-Git-Tag: misc/cutover-git~4667 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b7a0332ccd21c04a37535c97f04abc4bc28fb321;p=thirdparty%2Fgcc.git [objective-c/c++, testsuite] Fix stubify tests for -fnext-runtime. These tests were broken in the first place, and more broken following the change to drop pic symbol stubs unless the linker needs them. Fixed to work for x86 as well as powerpc and amended the options to force pic symbol stubs on. gcc/testsuite/ 2019-06-20 Iain Sandoe * obj-c++.dg/stubify-1.mm: Adjust options and scan-asm checks. * obj-c++.dg/stubify-2.mm: Likewise. * objc.dg/stubify-1.m: Likewise. * objc.dg/stubify-2.m: Likewise. From-SVN: r272518 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2d741d8df460..a3c2205da53d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2019-06-20 Iain Sandoe + + * obj-c++.dg/stubify-1.mm: Adjust options and scan-asm checks. + * obj-c++.dg/stubify-2.mm: Likewise. + * objc.dg/stubify-1.m: Likewise. + * objc.dg/stubify-2.m: Likewise. + 2019-06-20 Marek Polacek PR c++/87512 diff --git a/gcc/testsuite/obj-c++.dg/stubify-1.mm b/gcc/testsuite/obj-c++.dg/stubify-1.mm index c2355437afc8..b82167e5e7c6 100644 --- a/gcc/testsuite/obj-c++.dg/stubify-1.mm +++ b/gcc/testsuite/obj-c++.dg/stubify-1.mm @@ -4,7 +4,7 @@ /* { dg-do compile { target *-*-darwin* } } */ /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */ /* { dg-require-effective-target ilp32 } */ -/* { dg-options "-Os -mdynamic-no-pic -fno-exceptions -mmacosx-version-min=10.4" } */ +/* { dg-options "-Os -mdynamic-no-pic -fno-exceptions -mmacosx-version-min=10.4 -mpic-symbol-stubs" } */ typedef struct objc_object { } *id ; int x = 41 ; @@ -32,8 +32,8 @@ extern "C" { } @end -/* { dg-final { scan-assembler-not "\(bl|call\)\[ \t\]+_objc_msgSend\n" } } */ -/* { dg-final { scan-assembler "\(bl|call\)\[ \t\]+L_objc_msgSend\\\$stub\n" } } */ -/* { dg-final { scan-assembler-not "\(bl|call\)\[ \t\]+_bogonic\n" } } */ -/* { dg-final { scan-assembler "\(bl|call\)\[ \t\]+L_bogonic\\\$stub\n" } } */ -/* { dg-final { scan-assembler-not "\\\$non_lazy_ptr" } } */ +/* { dg-final { scan-assembler-not {(bl|call)[ \t]+_objc_msgSend\n} } } */ +/* { dg-final { scan-assembler {(bl|call)[ \t]+L_objc_msgSend\$stub\n} } } */ +/* { dg-final { scan-assembler-not {(bl|call)[ \t]+_bogonic\n} } } */ +/* { dg-final { scan-assembler {(bl|call)[ \t]+L_bogonic\$stub\n} } } */ +/* { dg-final { scan-assembler-not {\$non_lazy_ptr} } } */ diff --git a/gcc/testsuite/obj-c++.dg/stubify-2.mm b/gcc/testsuite/obj-c++.dg/stubify-2.mm index a9f66cac5d26..ee8e342c5f59 100644 --- a/gcc/testsuite/obj-c++.dg/stubify-2.mm +++ b/gcc/testsuite/obj-c++.dg/stubify-2.mm @@ -4,7 +4,7 @@ /* { dg-do compile { target *-*-darwin* } } */ /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */ /* { dg-require-effective-target ilp32 } */ -/* { dg-options "-mdynamic-no-pic -fdump-rtl-jump -mmacosx-version-min=10.4" } */ +/* { dg-options "-mdynamic-no-pic -fdump-rtl-jump -mmacosx-version-min=10.4 -mpic-symbol-stubs" } */ typedef struct objc_object { } *id ; int x = 41 ; @@ -30,4 +30,10 @@ extern int bogonic (int, int, int) ; /* Any symbol_ref of an un-stubified objc_msgSend is an error; look for "objc_msgSend" in quotes, without the $stub suffix. */ -/* { dg-final { scan-rtl-dump-not "symbol_ref.*\"objc_msgSend\"" "jump" } } */ +/* { dg-final { scan-rtl-dump-not {symbol_ref.*"objc_msgSend"} "jump" { target powerpc*-*-darwin* } } } */ + +/* { dg-final { scan-assembler-not {(bl|call)[ \t]+_objc_msgSend\n} } } */ +/* { dg-final { scan-assembler {(bl|call)[ \t]+L_objc_msgSend\$stub\n} } } */ +/* { dg-final { scan-assembler-not {(bl|call)[ \t]+_Z7bogoniciii\n} } } */ +/* { dg-final { scan-assembler {(bl|call)[ \t]+L__Z7bogoniciii\$stub\n} } } */ +/* { dg-final { scan-assembler-not {\$non_lazy_ptr} } } */ diff --git a/gcc/testsuite/objc.dg/stubify-1.m b/gcc/testsuite/objc.dg/stubify-1.m index 91bf73a14f7a..1e160a162deb 100644 --- a/gcc/testsuite/objc.dg/stubify-1.m +++ b/gcc/testsuite/objc.dg/stubify-1.m @@ -4,7 +4,7 @@ /* { dg-do compile { target *-*-darwin* } } */ /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */ /* { dg-require-effective-target ilp32 } */ -/* { dg-options "-Os -mdynamic-no-pic -mmacosx-version-min=10.4" } */ +/* { dg-options "-Os -mdynamic-no-pic -mmacosx-version-min=10.4 -mpic-symbol-stubs" } */ typedef struct objc_object { } *id ; int x = 41 ; @@ -28,8 +28,8 @@ extern int bogonic (int, int, int) ; } @end -/* { dg-final { scan-assembler-not "\(bl|call\)\[ \t\]+_objc_msgSend\n" } } */ -/* { dg-final { scan-assembler "\(bl|call\)\[ \t\]+L_objc_msgSend\\\$stub\n" } } */ -/* { dg-final { scan-assembler-not "\(bl|call\)\[ \t\]+_bogonic\n" } } */ -/* { dg-final { scan-assembler "\(bl|call\)\[ \t\]+L_bogonic\\\$stub\n" } } */ -/* { dg-final { scan-assembler-not "\\\$non_lazy_ptr" } } */ +/* { dg-final { scan-assembler-not {(bl|call)[ \t]+_objc_msgSend\n} } } */ +/* { dg-final { scan-assembler {(bl|call)[ \t]+L_objc_msgSend\$stub\n} } } */ +/* { dg-final { scan-assembler-not {(bl|call)[ \t]+_bogonic\n} } } */ +/* { dg-final { scan-assembler {(bl|call)[ \t]+L_bogonic\$stub\n} } } */ +/* { dg-final { scan-assembler-not {\$non_lazy_ptr} } } */ diff --git a/gcc/testsuite/objc.dg/stubify-2.m b/gcc/testsuite/objc.dg/stubify-2.m index eaf4b964e4b3..1f53b9ccb725 100644 --- a/gcc/testsuite/objc.dg/stubify-2.m +++ b/gcc/testsuite/objc.dg/stubify-2.m @@ -1,10 +1,10 @@ /* All calls must be properly stubified, m32 only. */ /* Testcase extracted from TextEdit:Document.m. */ -/* { dg-do compile { target powerpc*-*-darwin* } } */ +/* { dg-do compile { target *-*-darwin* } } */ /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */ /* { dg-require-effective-target ilp32 } */ -/* { dg-options "-mdynamic-no-pic -fdump-rtl-jump -mmacosx-version-min=10.4" } */ +/* { dg-options "-mdynamic-no-pic -fdump-rtl-jump -mmacosx-version-min=10.4 -mpic-symbol-stubs" } */ typedef struct objc_object { } *id ; int x = 41 ; @@ -30,4 +30,10 @@ extern int bogonic (int, int, int) ; /* Any symbol_ref of an un-stubified objc_msgSend is an error; look for "objc_msgSend" in quotes, without the $stub suffix. */ -/* { dg-final { scan-rtl-dump-not "symbol_ref.*\"objc_msgSend\"" "jump" } } */ +/* { dg-final { scan-rtl-dump-not {symbol_ref.*"objc_msgSend"} "jump" { target powerpc*-*-darwin* } } } */ + +/* { dg-final { scan-assembler-not {(bl|call)[ \t]+_objc_msgSend\n} } } */ +/* { dg-final { scan-assembler {(bl|call)[ \t]+L_objc_msgSend\$stub\n} } } */ +/* { dg-final { scan-assembler-not {(bl|call)[ \t]+_bogonic\n} } } */ +/* { dg-final { scan-assembler {(bl|call)[ \t]+L_bogonic\$stub\n} } } */ +/* { dg-final { scan-assembler-not {\$non_lazy_ptr} } } */