[Bug c++/34691] [4.3/4.4/4.5 Regression] Default argument checking not performed after overload resolution with C linkage

2009-04-07 Thread jason at gcc dot gnu dot org


--- 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

2009-04-07 Thread jason at gcc dot gnu dot org


--- 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

2009-04-07 Thread jason at gcc dot gnu dot org


--- 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

2009-04-01 Thread jason at gcc dot gnu dot org


--- 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

2009-04-01 Thread jason at gcc dot gnu dot org


--- 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

2009-03-31 Thread jsm28 at gcc dot gnu dot org


--- 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

2009-03-31 Thread jason at gcc dot gnu dot org


--- 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