]> granicus.if.org Git - clang/commit
We already reported an error for
authorRafael Espindola <rafael.espindola@gmail.com>
Tue, 12 Mar 2013 16:45:13 +0000 (16:45 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Tue, 12 Mar 2013 16:45:13 +0000 (16:45 +0000)
commit024c1199fa9d28e00160d5f05ed7dc3d25264837
tree0f90e37222e710b7e9a2b49b16c388737b51e35c
parent3fd9ccdd9f8d259bcf518e7056cfd419d992e984
We already reported an error for

extern "C" {
  void test5_f() {
    extern int test5_b;
  }
}
static float test5_b;

This patch makes us report one for

extern "C" {
  void test6_f() {
    extern int test6_b;
  }
}
extern "C" {
  static float test6_b;
}

Not because we think the declaration would be extern C, but because of the rule:

An entity with C language linkage shall not be declared with the same name as an entity in global scope...

We were just not looking past the extern "C" to see if the decl was in global
scope.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176875 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Sema/SemaDecl.cpp
test/SemaCXX/function-redecl.cpp