Commit 92d1425ca780 "c++: redundant targ coercion for var/alias tmpls" changed the compiler error message in this testcase from
<source>: In instantiation of 'void foo() [with T = int]': <source>:14:11: required from here <source>:8:22: error: 'int' is not a class, struct, or union type <source>:8:22: error: 'int' is not a class, struct, or union type <source>:8:22: error: 'int' is not a class, struct, or union type <source>:8:3: error: expected iteration declaration or initialization compiler exited with status 1 to: <source>: In instantiation of 'void foo() [with T = int]': <source>:14:11: required from here <source>:8:22: error: 'int' is not a class, struct, or union type <source>:8:3: error: invalid type for iteration variable 'i' compiler exited with status 1 Excess errors: <source>:8:3: error: invalid type for iteration variable 'i' Andrew Pinski analysed the issue in PR 110756 and considered that it was a testsuite issue in that the error message changed slightly. Also, it's a better error message. Therefore, we only need to adjust the testcase to expect the new message. gcc/testsuite/ChangeLog: PR testsuite/110756 g++.dg/gomp/pr58567.C: Adjust to new compiler error message. --- gcc/testsuite/g++.dg/gomp/pr58567.C | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/testsuite/g++.dg/gomp/pr58567.C b/gcc/testsuite/g++.dg/gomp/pr58567.C index 35a5bb027ffe..866d831c65e4 100644 --- a/gcc/testsuite/g++.dg/gomp/pr58567.C +++ b/gcc/testsuite/g++.dg/gomp/pr58567.C @@ -5,7 +5,7 @@ template<typename T> void foo() { #pragma omp parallel for - for (typename T::X i = 0; i < 100; ++i) /* { dg-error "'int' is not a class, struct, or union type|expected iteration declaration or initialization" } */ + for (typename T::X i = 0; i < 100; ++i) /* { dg-error "'int' is not a class, struct, or union type|invalid type for iteration variable 'i'" } */ ; }