http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53953
Bug #: 53953 Summary: [4.7/4.8 Regression]: g++.dg/cpp0x/lambda/lambda-ice2.C (warnings and errors not matching) Classification: Unclassified Product: gcc Version: 4.7.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: regression AssignedTo: unassig...@gcc.gnu.org ReportedBy: h...@gcc.gnu.org CC: ja...@gcc.gnu.org, pa...@gcc.gnu.org Host: x86_64-unknown-linux-gnu Target: cris-axis-elf This test previously passed, now it fails, at least for cris-elf, but most likely on multiple targets...but from gcc-testresults, I see that's not so. Thankfully, for some test-runs, it can be seen for i686-pc-linux-gnu, so it might be in some part be specific to some ILP32 targets. (Odd detail: I see it in http://gcc.gnu.org/ml/gcc-testresults/2012-07/msg00915.html but not in http://gcc.gnu.org/ml/gcc-testresults/2012-07/msg00920.html and I can't spot a system-specific difference between those runs - they seem to be identical overlapping autotesters.) A patch in the revision range (last_known_working:first_known_failing) 189391:189401 exposed or caused this regression. Since then it fails as follows: Running /tmp/hpautotest-gcc1/gcc/gcc/testsuite/g++.dg/dg.exp ... ... FAIL: g++.dg/cpp0x/lambda/lambda-ice2.C (test for warnings, line 12) FAIL: g++.dg/cpp0x/lambda/lambda-ice2.C candidate explanation (test for errors, line 5) FAIL: g++.dg/cpp0x/lambda/lambda-ice2.C (test for excess errors) In g++.log: Executing on host: /tmp/gccobj/gcc/testsuite/g++/../../g++ -B/tmp/gccobj/gcc/testsuite/g++/../../ /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C -fno-diagnostics-show-caret -nostdinc++ -I/tmp/gccobj/cris-elf/libstdc++-v3/include/cris-elf -I/tmp/gccobj/cris-elf/libstdc++-v3/include -I/tmp/gccsrc/libstdc++-v3/libsupc++ -I/tmp/gccsrc/libstdc++-v3/include/backward -I/tmp/gccsrc/libstdc++-v3/testsuite/util -fmessage-length=0 -std=c++0x -S -isystem /tmp/gccobj/cris-elf/./newlib/targ-include -isystem /tmp/gccsrc/newlib/libc/include -o lambda-ice2.s (timeout = 300) /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C: In function 'int main()': /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:14:8: error: no matching function for call to 'run(main()::<lambda()>&)' /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:14:8: note: candidate is: /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:5:15: note: template<class F> decltype (F()) run(F) /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:5:15: note: template argument deduction/substitution failed: /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C: In substitution of 'template<class F> decltype (F()) run(F) [with F = main()::<lambda()>]': /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:14:8: required from here /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:5:15: error: no matching function for call to 'main()::<lambda()>::__lambda0()' /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:5:15: note: candidates are: /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:12:13: note: constexpr main()::<lambda()>::<lambda>(const main()::<lambda()>&) /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:12:13: note: candidate expects 1 argument, 0 provided /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:12:13: note: constexpr main()::<lambda()>::<lambda>(main()::<lambda()>&&) /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:12:13: note: candidate expects 1 argument, 0 provided compiler exited with status 1 output is: /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C: In function 'int main()': /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:14:8: error: no matching function for call to 'run(main()::<lambda()>&)' /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:14:8: note: candidate is: /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:5:15: note: template<class F> decltype (F()) run(F) /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:5:15: note: template argument deduction/substitution failed: /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C: In substitution of 'template<class F> decltype (F()) run(F) [with F = main()::<lambda()>]': /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:14:8: required from here /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:5:15: error: no matching function for call to 'main()::<lambda()>::__lambda0()' /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:5:15: note: candidates are: /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:12:13: note: constexpr main()::<lambda()>::<lambda>(const main()::<lambda()>&) /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:12:13: note: candidate expects 1 argument, 0 provided /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:12:13: note: constexpr main()::<lambda()>::<lambda>(main()::<lambda()>&&) /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:12:13: note: candidate expects 1 argument, 0 provided PASS: g++.dg/cpp0x/lambda/lambda-ice2.C (test for warnings, line 5) FAIL: g++.dg/cpp0x/lambda/lambda-ice2.C (test for warnings, line 12) PASS: g++.dg/cpp0x/lambda/lambda-ice2.C (test for errors, line 14) PASS: g++.dg/cpp0x/lambda/lambda-ice2.C candidate note (test for warnings, line 14) FAIL: g++.dg/cpp0x/lambda/lambda-ice2.C candidate explanation (test for errors, line 5) FAIL: g++.dg/cpp0x/lambda/lambda-ice2.C (test for excess errors) Excess errors: /tmp/gccsrc/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C:5:15: error: no matching function for call to 'main()::<lambda()>::__lambda0()' (objpath and srcpath edited for brevity) A patch carrying over this regression has been committed to the 4.7 branch with a commit in the range 189412:189457. That branch now fails similarly. Author and committer for matching revision ranges CC:ed.