[COMMITTED] testsuite: Require lto-plugin support in gcc.dg/lto/modref-3 etc. [PR98237]
Checks
Commit Message
gcc.dg/lto/modref-3 etc. FAIL on Solaris with the native linker:
FAIL: gcc-dg-lto-modref-3-01.exe scan-wpa-ipa-dump modref "parm 1 flags: no_direct_clobber no_direct_escape"
FAIL: gcc-dg-lto-modref-4-01.exe scan-wpa-ipa-dump modref "parm 1 flags: no_direct_clobber no_direct_escape"
FAIL: gcc.dg/lto/modref-3 c_lto_modref-3_0.o-c_lto_modref-3_1.o execute -O2 -flto-partition=max -fdump-ipa-modref -fno-ipa-sra -fno-ipa-cp -flto
FAIL: gcc.dg/lto/modref-4 c_lto_modref-4_0.o-c_lto_modref-4_1.o execute -O2 -flto-partition=max -fdump-ipa-modref -fno-ipa-sra -flto
The issue is that the tests require the linker plugin, which isn't
available with Solaris ld. Thus, it also FAILs when gcc is configured
with --disable-lto-plugin.
This patch thus declares the requirement. As it turns out, there's an
undocumented dg-require-linker-plugin already, but I introduce and use
the corresponding effective-target keyword and document both.
Given that the effective-target form is more flexible, I'm tempted to
remove dg-require-* with an empty arg as already mentioned in
sourcebuild.texi. That is not this patch, however.
Tested on i386-pc-solaris2.11 with ld and gld.
Committed to trunk.
Rainer
# HG changeset patch
# Parent c4cd589ec9c0ac709c6678e47799d87d82fbad00
testsuite: Require lto-plugin support in gcc.dg/lto/modref-3 etc. [PR98237]
@@ -3009,6 +3009,9 @@ Target supports @option{-mpe-aligned-com
@item pie
Target supports @option{-pie}, @option{-fpie} and @option{-fPIE}.
+@item linker_plugin
+Target supports the linker plugin.
+
@item rdynamic
Target supports @option{-rdynamic}.
@@ -3337,6 +3340,10 @@ system. Some tests are incompatible wit
hosts, which involves copying the source file to the host and compiling
it with a relative path and "@code{-o a.out}".
+@item dg-require-linker-plugin ""
+Skip the test is the target does not support the linker plugin.
+This is equivalent to @code{dg-require-effective-target linker_plugin}.
+
@item dg-require-mkfifo ""
Skip the test if the target does not support @code{mkfifo}.
@@ -1,5 +1,6 @@
/* { dg-lto-do run } */
/* { dg-lto-options { {-O2 -flto-partition=max -fdump-ipa-modref -fno-ipa-sra -fno-ipa-cp -flto} } } */
+/* { dg-require-effective-target linker_plugin } */
extern void copy (int *a, int *b);
extern void barrier ();
extern int *ptr;
@@ -1,5 +1,6 @@
/* { dg-lto-do run } */
/* { dg-lto-options { {-O2 -flto-partition=max -fdump-ipa-modref -fno-ipa-sra -flto} } } */
+/* { dg-require-effective-target linker_plugin } */
extern void copy (int *a, int *b);
extern void barrier ();
extern int *ptr;
@@ -9914,6 +9914,7 @@ proc is-effective-target { arg } {
"htm_hw" { set selected [check_htm_hw_available] }
"named_sections" { set selected [check_named_sections_available] }
"gc_sections" { set selected [check_gc_sections_available] }
+ "linker_plugin" { set selected [check_linker_plugin_available] }
"cxa_atexit" { set selected [check_cxa_atexit_available] }
default { error "unknown effective target keyword `$arg'" }
}