As I mentioned in the original thread, my change to pr94157_0 was an
attempt to avoid these warnings by passing a magic flag to the linker.
Of course we may not be using GNU ld. Or we may be on a non-elf target
where the flag I used doesn't exist. Or we may even be on a ELF target
where those bits weren't added to the linker (frv). Furthermore, we
need fixes to all the nested function tests as well.
So even though I initially resisted pruning the warning, that seems like
the best course of action. So this patch removes my recent change to
pr94157_0 and instead uses our pruning facilities.
I'll be pushing this to the trunk and gcc-12 branch.
Jeff
commit af71f96631920f32ed9ec6c1c35d140dbe9992d1
Author: Jeff Law <jeffreya...@gmail.com>
Date: Thu Apr 28 12:03:52 2022 -0400
[committed] Fix more problems with new linker warnings
gcc/testsuite
* gcc.dg/lto/pr94157_0.c: Revert last change.
* lib/prune.exp (prune_gcc_output): Prune new linker warning.
diff --git a/gcc/testsuite/gcc.dg/lto/pr94157_0.c
b/gcc/testsuite/gcc.dg/lto/pr94157_0.c
index a76141b1809..a6e308b855b 100644
--- a/gcc/testsuite/gcc.dg/lto/pr94157_0.c
+++ b/gcc/testsuite/gcc.dg/lto/pr94157_0.c
@@ -1,6 +1,6 @@
/* { dg-lto-do link } */
/* { dg-require-effective-target gas } */
-/* { dg-lto-options { { -O0 -fipa-vrp -flto -Wa,--noexecstack
-Wa,--noexecstack -Wa,--execstack -Wa,--execstack -Wa,--execstack
-Wa,--execstack -Wa,--execstack -Wa,--execstack -Wa,--execstack -Wa,--execstack
-Wa,--execstack -Wa,--execstack -Wa,--execstack -Wa,--execstack -Wa,--execstack
-Wa,--execstack -Wl,-z,execstack} } } */
+/* { dg-lto-options { { -O0 -fipa-vrp -flto -Wa,--noexecstack
-Wa,--noexecstack -Wa,--execstack -Wa,--execstack -Wa,--execstack
-Wa,--execstack -Wa,--execstack -Wa,--execstack -Wa,--execstack -Wa,--execstack
-Wa,--execstack -Wa,--execstack -Wa,--execstack -Wa,--execstack -Wa,--execstack
-Wa,--execstack } } } */
int main() {
diff --git a/gcc/testsuite/lib/prune.exp b/gcc/testsuite/lib/prune.exp
index 422498527aa..04c6a1dd7a1 100644
--- a/gcc/testsuite/lib/prune.exp
+++ b/gcc/testsuite/lib/prune.exp
@@ -82,6 +82,11 @@ proc prune_gcc_output { text } {
regsub -all "(^|\n)\[^\n\]*file path prefix \[^\n\]* never used" $text ""
text
regsub -all "(^|\n)\[^\n\]*linker input file unused since linking not
done" $text "" text
+ # Ideally the tests would indicate that executable stacks were needed
+ # to the linker. But the option for that varies and may not even exist
+ # on some targets. So we're stuck pruning the warning.
+ regsub -all "(^|\n)(\[^\n\]*: warning:\[^\n\]*requires executable
stack\[^\n\]*\n?)+" $text "\\1" text
+
# Ignore harmless warnings from Xcode 3.2.x.
regsub -all "(^|\n)\[^\n\]*ld: warning: can't add line info to anonymous
symbol\[^\n\]*" $text "" text
regsub -all "(^|\n)\[^\n\]*warning:
DWARFDebugInfoEntry::AppendDependants\[^\n\]*AT_\[^\n\]*FORM_ref4\[^\n\]*"
$text "" text