On Mon, Sep 08, 2025 at 10:27:32AM +0200, Jakub Jelinek wrote:
> On Sat, Sep 06, 2025 at 03:54:31PM +1000, Nathaniel Shead wrote:
> > * g++.dg/modules/default-arg-4_a.C: XFAIL bogus errors.
> > * g++.dg/modules/default-arg-4_b.C: Likewise.
> > --- a/gcc/testsuite/g++.dg/modules/default-arg-4_a.C
> > +++ b/gcc/testsuite/g++.dg/modules/default-arg-4_a.C
> > @@ -17,3 +17,7 @@ qux ()
> > {
> > return foo () + bar <int> () + baz <int> ();
> > }
> > +
> > +export using ::foo;
> > +export using ::bar;
> > +export using ::baz;
> > diff --git a/gcc/testsuite/g++.dg/modules/default-arg-4_b.C
> > b/gcc/testsuite/g++.dg/modules/default-arg-4_b.C
> > index 98b3a5f4ba7..7ed003ff398 100644
> > --- a/gcc/testsuite/g++.dg/modules/default-arg-4_b.C
> > +++ b/gcc/testsuite/g++.dg/modules/default-arg-4_b.C
> > @@ -1,23 +1,23 @@
> > // C++20 P1766R1 - Mitigating minor modules maladies
> > -// { dg-do run }
> > +// { dg-module-do run }
> > // { dg-additional-options "-fmodules-ts" }
> >
> > import M;
> >
> > int
> > -foo (int i = 42)
> > +foo (int i = 42) // { dg-bogus "default argument given
> > for parameter 1 of 'int foo\\\(int\\\)'" "PR99000" { xfail *-*-* } }
> > {
> > return i;
> > }
> >
> > -template <typename T, typename U = int>
> > +template <typename T, typename U = int> // { dg-bogus "redefinition of
> > default argument for 'class U'" "PR99000" { xfail *-*-* } }
> > int
> > bar ()
> > {
> > return sizeof (U);
> > }
> >
> > -template <typename T, int N = 42>
> > +template <typename T, int N = 42> // { dg-bogus "redefinition of default
> > argument for 'int N'" "PR99000" { xfail *-*-* } }
> > int
> > baz ()
> > {
>
> I'm getting
> UNRESOLVED: g++.dg/modules/default-arg-4 -std=c++17 execute
> UNRESOLVED: g++.dg/modules/default-arg-4 -std=c++17 link
> UNRESOLVED: g++.dg/modules/default-arg-4 -std=c++20 execute
> UNRESOLVED: g++.dg/modules/default-arg-4 -std=c++20 link
> UNRESOLVED: g++.dg/modules/default-arg-4 -std=c++23 execute
> UNRESOLVED: g++.dg/modules/default-arg-4 -std=c++23 link
> UNRESOLVED: g++.dg/modules/default-arg-4 -std=c++26 execute
> UNRESOLVED: g++.dg/modules/default-arg-4 -std=c++26 link
> because of this. The error messages (even with xfailed dg-bogus)
> mean the compilation fails, so linking nor running isn't done.
> So at least temporarily the test should be dg-do compile (dunno what
> dg-module-do does, maybe dg-module-do compile) until the errors are
> fixed.
>
> Jakub
>
Oh, sorry! Is there a way to get the output of 'make check' to complain
about this more obviously? I just got a "# of unresolved testcases:"
which I didn't notice as an issue. (But I can pay attention for that
now...)
Re dg-module-do vs dg-do, dg-module-do will ensure that for module
tests with multiple TUs we actually link all the TUs rather than just
the one we put { dg-do run } on, I believe.
Here's a fix I'll push in a little while unless anyone has concerns.
Tested on x86_64-pc-linux-gnu, will commit as obvious.
-- >8 --
Subject: [PATCH] testsuite: Fix UNRESOLVEDs for mistakenly dg-run test
[PR121872]
gcc/testsuite/ChangeLog:
* g++.dg/modules/default-arg-4_b.C: Change run to compile.
Signed-off-by: Nathaniel Shead <[email protected]>
---
gcc/testsuite/g++.dg/modules/default-arg-4_b.C | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/gcc/testsuite/g++.dg/modules/default-arg-4_b.C
b/gcc/testsuite/g++.dg/modules/default-arg-4_b.C
index 7ed003ff398..5800ea20807 100644
--- a/gcc/testsuite/g++.dg/modules/default-arg-4_b.C
+++ b/gcc/testsuite/g++.dg/modules/default-arg-4_b.C
@@ -1,5 +1,6 @@
// C++20 P1766R1 - Mitigating minor modules maladies
-// { dg-module-do run }
+// FIXME mark as run once we no longer xfail below.
+// { dg-module-do compile }
// { dg-additional-options "-fmodules-ts" }
import M;
--
2.51.0