testsuite: Update pr94426-2 test to handle more targets [PR94426]
authorIain Sandoe <iain@sandoe.co.uk>
Thu, 16 Apr 2020 20:13:51 +0000 (21:13 +0100)
committerIain Sandoe <iain@sandoe.co.uk>
Thu, 16 Apr 2020 20:13:51 +0000 (21:13 +0100)
The function (_Z4InitIN3VARIZ1qvEUlvE_EUlvE_EEbT_) that initializes
VAR has changed siganture.  It was was weak / comdat [Linux] or
weak / global [Darwin] and now is text section local.

So: test that the symbol exists, is spelled the way intended by the
ABI mangling and is not weak (or global on Darwin).

gcc/testsuite/ChangeLog:

2020-04-16  Iain Sandoe  <iain@sandoe.co.uk>

PR c++/94426
* g++.dg/cpp0x/lambda/pr94426-2.C: Adjust scan-asms to test
for the change on more platforms.

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp0x/lambda/pr94426-2.C

index ad4b7e29ec7a88dfc030138e494308306483d882..d862567ce4fa4d7b25c577a5ccdbbef35906bd4b 100644 (file)
@@ -1,3 +1,8 @@
+2020-04-16  Iain Sandoe  <iain@sandoe.co.uk>
+
+       * g++.dg/cpp0x/lambda/pr94426-2.C: Adjust scan-asms to test
+       for the change on more platforms.
+
 2020-04-16  Martin Jambor  <mjambor@suse.cz>
 
        PR ipa/93621
index 3db864c604b825f80c76d3b930487336fdfc3bed..9a1c718a284d964f03baa81b5476ed2ebc3011bc 100644 (file)
@@ -16,5 +16,11 @@ void q ()
 }
 
 // The instantiation of VAR becomes local
-// { dg-final { scan-assembler {.local _Z3VARIZ1qvEUlvE_E} { target { i?86-*-* x86_64-*-* } } } }
-// { dg-final { scan-assembler {.comm  _Z3VARIZ1qvEUlvE_E,1,1} { target { i?86-*-* x86_64-*-* } } } }
+// { dg-final { scan-assembler {.local _Z3VARIZ1qvEUlvE_E} { target { { i?86-*-* x86_64-*-* } && { ! *-*-darwin* } } } } }
+// { dg-final { scan-assembler {.comm  _Z3VARIZ1qvEUlvE_E,1,1} { target { { i?86-*-* x86_64-*-* } && { ! *-*-darwin* } } } } }
+
+// The instantiation of VAR becomes local
+// { dg-final { scan-assembler-not {.globl[ \t]+_?_Z4InitIN3VARIZ1qvEUlvE_EUlvE_EEbT_} { target *-*-darwin* } } }
+// { dg-final { scan-assembler-not {.weak(_definition)?[ \t]+_?_Z4InitIN3VARIZ1qvEUlvE_EUlvE_EEbT_} { target { i?86-*-* x86_64-*-* *-*-darwin* } } } }
+// Make sure it is defined with the mangling we expect.
+// { dg-final { scan-assembler {_?_Z4InitIN3VARIZ1qvEUlvE_EUlvE_EEbT_:} { target { i?86-*-* x86_64-*-* *-*-darwin* } } } }