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 <[email protected]>
---
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)