On Fri, Jan 13, 2012 at 9:16 PM, Eli Friedman <[email protected]>wrote:

> On Fri, Jan 13, 2012 at 7:22 PM, Matt Beaumont-Gay <[email protected]>
> wrote:
> > Hi Eli,
> >
> > On Fri, Jan 13, 2012 at 15:41, Eli Friedman <[email protected]>
> wrote:
> >> Modified: cfe/trunk/test/SemaCXX/linkage.cpp
> >> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/linkage.cpp?rev=148158&r1=148157&r2=148158&view=diff
> >>
> ==============================================================================
> >> --- cfe/trunk/test/SemaCXX/linkage.cpp (original)
> >> +++ cfe/trunk/test/SemaCXX/linkage.cpp Fri Jan 13 17:41:25 2012
> >> @@ -76,13 +76,15 @@
> >>     struct X {
> >>       int f() {
> >>         extern int g();
> >> -        extern int a;
> >> +        // FIXME: We don't compute the correct linkage for this
> variable
> >> +        // at the moment
> >> +        // extern int a;
> >
> > Are you planning on addressing this FIXME soon? We have some code
> > which looks roughly like this, and now Clang is producing a warning
> > "variable 'a' has internal linkage but is not defined".
>
> Per the C++11 rules, this variable clearly has internal linkage, but
> the C++98 rules aren't very clear, and I'm not sure what the
> gcc-compatible rules are.  If you can point me to some description, I
> can implement it.


I'm not sure what C++11 rules you're referring to (I just haven't read that
part of the standard), but these definitely don't actually have internal
linkage... Both Clang and GCC give them external linkage and C mangling.
This is true even in C++11 mode, both with GCC and Clang in my tests... So
this warning looks like a false positive.
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to