[Bug c++/34691] [4.3/4.4/4.5 Regression] Default argument checking not performed after overload resolution with C linkage
--- Comment #14 from jason at gcc dot gnu dot org 2009-04-08 03:45 --- Subject: Bug 34691 Author: jason Date: Wed Apr 8 03:44:48 2009 New Revision: 145709 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=145709 Log: PR c++/34691 * name-lookup.c (merge_functions): Keep multiple extern C functions. * call.c (joust): Complain about mismatched default arguments in extern C functions. * class.c (resolve_address_of_overloaded_function): Handle multiple extern C functions. * pt.c (resolve_overloaded_unification): Likewise. Added: trunk/gcc/testsuite/g++.dg/overload/extern-C-1.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/call.c trunk/gcc/cp/class.c trunk/gcc/cp/name-lookup.c trunk/gcc/cp/pt.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34691
[Bug c++/34691] [4.3/4.4/4.5 Regression] Default argument checking not performed after overload resolution with C linkage
--- Comment #15 from jason at gcc dot gnu dot org 2009-04-08 03:55 --- Subject: Bug 34691 Author: jason Date: Wed Apr 8 03:55:00 2009 New Revision: 145710 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=145710 Log: PR c++/34691 * name-lookup.c (merge_functions): Keep multiple extern C functions. * call.c (joust): Complain about mismatched default arguments in extern C functions. * class.c (resolve_address_of_overloaded_function): Handle multiple extern C functions. * pt.c (resolve_overloaded_unification): Likewise. Added: branches/gcc-4_4-branch/gcc/testsuite/g++.dg/overload/extern-C-1.C - copied unchanged from r145709, trunk/gcc/testsuite/g++.dg/overload/extern-C-1.C Modified: branches/gcc-4_4-branch/gcc/cp/ChangeLog branches/gcc-4_4-branch/gcc/cp/call.c branches/gcc-4_4-branch/gcc/cp/class.c branches/gcc-4_4-branch/gcc/cp/name-lookup.c branches/gcc-4_4-branch/gcc/cp/pt.c branches/gcc-4_4-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34691
[Bug c++/34691] [4.3/4.4/4.5 Regression] Default argument checking not performed after overload resolution with C linkage
--- Comment #16 from jason at gcc dot gnu dot org 2009-04-08 03:56 --- Fixed for 4.4/4.5, not going to fix in 4.3. -- jason at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34691
[Bug c++/34691] [4.3/4.4/4.5 Regression] Default argument checking not performed after overload resolution with C linkage
--- Comment #12 from jason at gcc dot gnu dot org 2009-04-01 15:21 --- Fixed testcase #3. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34691
[Bug c++/34691] [4.3/4.4/4.5 Regression] Default argument checking not performed after overload resolution with C linkage
--- Comment #13 from jason at gcc dot gnu dot org 2009-04-01 15:29 --- Created an attachment (id=17576) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17576action=view) Patch for testcase #1 Here's a patch that gives an error for testcase #1. But it's not clear to me that we ought to have two functions in the overload set to begin with. For instance, that means that adding void (*fp)(int) = f; gives an ambiguity error, while it doesn't on EDG. If we were properly merging the two used functions together, we would have already chosen one of the default arguments by the time we get to the call, so this patch wouldn't have two candidates to compare. I suppose that it would be feasible to keep the two functions separate until overload resolution and then fix resolve_address_of_overloaded_function to combine them. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34691
[Bug c++/34691] [4.3/4.4/4.5 Regression] Default argument checking not performed after overload resolution with C linkage
--- Comment #10 from jsm28 at gcc dot gnu dot org 2009-03-31 20:16 --- Closing 4.2 branch. -- jsm28 at gcc dot gnu dot org changed: What|Removed |Added Summary|[4.2/4.3/4.4/4.5 Regression]|[4.3/4.4/4.5 Regression] |Default argument checking |Default argument checking |not performed after overload|not performed after overload |resolution with C linkage |resolution with C linkage Target Milestone|4.2.5 |4.3.4 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34691
[Bug c++/34691] [4.3/4.4/4.5 Regression] Default argument checking not performed after overload resolution with C linkage
--- Comment #11 from jason at gcc dot gnu dot org 2009-04-01 03:34 --- Subject: Bug 34691 Author: jason Date: Wed Apr 1 03:34:30 2009 New Revision: 145386 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=145386 Log: PR c++/34691 * name-lookup.c (pushdecl_maybe_friend): Diagnose mismatched extern C declarations. * libsupc++/unwind-cxx.h: Correct __cxa_call_terminate prototype. Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/name-lookup.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.old-deja/g++.other/using9.C trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/libsupc++/unwind-cxx.h -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34691