[Bug c++/68763] [6 Regression] ICE: in verify_unstripped_args, at cp/pt.c:1132

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Jan 28 14:58:00 GMT 2016


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68763

--- Comment #19 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #18)
> Created attachment 37506 [details]
> gcc6-pr68763.patch
> 
> Partial fix.  With the testcase reduction, I gave up, got only 4.7%
> reduction after 6 hours of 16 processes creduction.
> With this patch, the testcase compiles fine, but there is still modification
> in place - DEFARG_INSTANTIATIONS points to the particular TREE_LIST node
> containing the DEFAULT_ARG, while what we'd really need is let it point to
> the FUNCTION_DECLs whose TREE_TYPE we should modify similarly.  Thoughts on
> that?
> I'll bootstrap/regtest this partial fix anyway.

The patch passed bootstrap, and during regtest regressed
FAIL: g++.old-deja/g++.other/lookup15.C  -std=c++14 (test for excess errors)
Excess errors:
/home/jakub/src/gcc/gcc/testsuite/g++.old-deja/g++.other/lookup15.C:33:9:
error: call to 'mostd::mostd(int)' uses the default argument for paramete
r 1, which is not yet defined
FAIL: g++.old-deja/g++.mike/p4623.C  -std=c++14 (test for excess errors)
Excess errors:
/home/jakub/src/gcc/gcc/testsuite/g++.old-deja/g++.mike/p4623.C:30:20: error:
call to 'base1::base1(int)' uses the default argument for parameter 1
, which is not yet defined
/home/jakub/src/gcc/gcc/testsuite/g++.old-deja/g++.mike/p4623.C:30:20: error:
call to 'base2::base2(int)' uses the default argument for parameter 1
, which is not yet defined

So, clearly there are more places than just the clones that expect the
function/method type to be modified in place.


More information about the Gcc-bugs mailing list