ping (both the patch and the comment about language visibility). On 11 June 2013 09:02, Rafael Espíndola <[email protected]> wrote: > On 10 June 2013 19:08, Rafael Espíndola <[email protected]> wrote: >> Richard pointed out on IRC that the patch should look at the >> redeclaration context to avoid problems with one of the functions >> being in a extern "C++". Implementing that found some interesting >> problems. Consider >> >> extern "C" { >> static void foo(int x); >> static void foo() { >> } >> void foo(int x) { >> } >> } >> >> This should be valid, since both functions have internal linkage and >> therefore none of them has C language linkage. Commenting the first >> declaration makes the code invalid as now the last one is extern C and >> [dcl.link] p6 kicks in. This means we have to do "normal" overload >> resolution first to see if the last decl we are looking at has C >> language linkage or not. > > BTW, is this sufficient evidence that we should just give static > functions C language linkage? I just checked http://gcc.godbolt.org/ > and gcc 4.8 and icc 13 (which is edg based, no?), reject > > extern "C" { > static void foo() { > } > static void foo(int x) { > } > } > > We are putting quiet a bit of effort to make sure we accept it and I > still can't see the value. > > Cheers, > Rafael
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
