diff options
author | Jason Merrill <jason@redhat.com> | 2009-04-07 23:44:48 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2009-04-07 23:44:48 -0400 |
commit | e04c614e09867345ee8ac03390cc75c5f2f1de1e (patch) | |
tree | 4b4b914d985e7a40bf89923f3bc3cb2b64094be0 /gcc/testsuite | |
parent | ee618c17faa664adb1b84395199cd62de3b91185 (diff) | |
download | gcc-e04c614e09867345ee8ac03390cc75c5f2f1de1e.zip gcc-e04c614e09867345ee8ac03390cc75c5f2f1de1e.tar.gz gcc-e04c614e09867345ee8ac03390cc75c5f2f1de1e.tar.bz2 |
re PR c++/34691 (Default argument checking not performed after overload resolution with C linkage)
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.
From-SVN: r145709
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/overload/extern-C-1.C | 17 |
2 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 85a616d..a0fee86 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2009-04-07 Jason Merrill <jason@redhat.com> + + PR c++/34691 + * g++.dg/overload/extern-C-1.C: New. + 2009-04-07 Dominique d'Humieres <dominiq@lps.ens.fr> PR testsuite/39325 diff --git a/gcc/testsuite/g++.dg/overload/extern-C-1.C b/gcc/testsuite/g++.dg/overload/extern-C-1.C new file mode 100644 index 0000000..839a0b4 --- /dev/null +++ b/gcc/testsuite/g++.dg/overload/extern-C-1.C @@ -0,0 +1,17 @@ +// PR c++/34691 + +namespace A { + extern "C" void f(int = 5); // { dg-message "= 5" } +} +namespace B { + extern "C" void f(int = 4); // { dg-message "= 4" } +} + +using A::f; +using B::f; +int main() { + void (*fp)(int) = f; // OK + f(3); // OK + f(); // { dg-error "default argument mismatch" } +} + |