As per the analysis in the PR, tested on x86_64, i686 and aarch64 Darwin
(and on x86_64 linux), pushed to trunk, thanks,
Iain

--- 8< ---

For Darwin, non-weak functions defined in a TU always bind locally
and so cxa_atexit-6.C is not applicable here.

        PR testsuite/114982

gcc/testsuite/ChangeLog:

        * g++.dg/tree-ssa/cxa_atexit-6.C: Skip for Darwin.

Signed-off-by: Iain Sandoe <i...@sandoe.co.uk>
---
 gcc/testsuite/g++.dg/tree-ssa/cxa_atexit-6.C | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/gcc/testsuite/g++.dg/tree-ssa/cxa_atexit-6.C 
b/gcc/testsuite/g++.dg/tree-ssa/cxa_atexit-6.C
index f6599a3c9f4..e22036067dd 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/cxa_atexit-6.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/cxa_atexit-6.C
@@ -2,10 +2,14 @@
 /* { dg-require-effective-target fpic } */
 /* { dg-options "-O2 -fdump-tree-cddce1-details -fdump-tree-optimized -fPIC" } 
*/
 // { dg-require-effective-target cxa_atexit }
+/* This test is not appropriate for targets where non-weak functions defined
+   in the TU always bind locally; see PR114982.  */
+/* { dg-skip-if "PR114982" { *-*-darwin* } } */
 /* PR tree-optimization/19661 */
 
 /* The call to axexit should not be removed as A::~A() cannot be figured if it
-   is a pure/const function call as the function call g does not bind locally. 
*/
+   is a pure/const function call for platforms where the function call g does
+   not bind locally. */
 
 __attribute__((noinline))
 void g() {}
-- 
2.39.2 (Apple Git-143)

Reply via email to