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