[Bug regression/53953] New: [4.7/4.8 Regression]: g++.dg/cpp0x/lambda/lambda-ice2.C (warnings and errors not matching)

hp at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Jul 13 13:43:00 GMT 2012


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: unassigned@gcc.gnu.org
        ReportedBy: hp@gcc.gnu.org
                CC: jason@gcc.gnu.org, paolo@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.



More information about the Gcc-bugs mailing list