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.