[Bug c++/34691] [4.1/4.2/4.3 Regression] Default argument checking not performed after overload resolution with C linkage
--- Comment #4 from jsm28 at gcc dot gnu dot org 2008-02-01 16:55 --- 4.2.3 is being released now, changing milestones of open bugs to 4.2.4. -- jsm28 at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|4.2.3 |4.2.4 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34691
[Bug c++/34691] [4.1/4.2/4.3 Regression] Default argument checking not performed after overload resolution with C linkage
--- Comment #3 from jakub at gcc dot gnu dot org 2008-01-11 14:01 --- What about: namespace A { extern C int g (double); } namespace B { extern C int g (int); } using namespace A; using namespace B; void f () { g (1.0); } I don't believe this is valid, as extern C means there is just one g, yet it is accepted. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34691
[Bug c++/34691] [4.1/4.2/4.3 Regression] Default argument checking not performed after overload resolution with C linkage
--- Comment #2 from jakub at gcc dot gnu dot org 2008-01-11 13:25 --- Related: void foo (int i, int j = 6); void foo (int i = 4, int j); int bar (void) { foo (); } is accepted (correctly), but: extern C { void foo (int i, int j = 6); void foo (int i = 4, int j); } int bar (void) { foo (); } is rejected. How does the C linkage matter here? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34691
[Bug c++/34691] [4.1/4.2/4.3 Regression] Default argument checking not performed after overload resolution with C linkage
-- jakub at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34691
[Bug c++/34691] [4.1/4.2/4.3 Regression] Default argument checking not performed after overload resolution with C linkage
--- Comment #1 from rguenth at gcc dot gnu dot org 2008-01-06 20:54 --- 2.95.4 says t.C:9: `B::f(int)' conflicts with used function t.C:2: `void A::f(int = 5)' previously declared here t.C:9: default argument given for parameter 1 of `void B::f(int = 4)' t.C:2: after previous specification in `void A::f(int = 5)' fails since at least 3.3.6. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords||accepts-invalid Known to fail||3.3.6 Known to work||2.95.4 Last reconfirmed|-00-00 00:00:00 |2008-01-06 20:54:23 date|| Summary|Default argument checking |[4.1/4.2/4.3 Regression] |not performed after overload|Default argument checking |resolution with C linkage |not performed after overload ||resolution with C linkage Target Milestone|--- |4.2.3 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34691