]> granicus.if.org Git - clang/commit
PR7927, PR16247: Reimplement handling of matching extern "C" declarations
authorRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 28 Jun 2013 22:03:51 +0000 (22:03 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 28 Jun 2013 22:03:51 +0000 (22:03 +0000)
commit5eab8d733ce7867fda4e6d5f5afa6dfe8a105c79
tree18b5941253a0455172753e95bc83cd0d46303155
parent5fb478be9b91f15624e855e7bd6ac2101021ac48
PR7927, PR16247: Reimplement handling of matching extern "C" declarations
across scopes.

When we declare an extern "C" name that is not a redeclaration of an entity in
the same scope, check whether it redeclares some extern "C" entity from another
scope, and if not, check whether it conflicts with a (non-extern-"C") entity in
the translation unit.

When we declare a name in the translation unit that is not a redeclaration,
check whether it conflicts with any extern "C" entities (possibly from other
scopes).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185229 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Basic/DiagnosticSemaKinds.td
lib/Sema/SemaDecl.cpp
lib/Sema/SemaOverload.cpp
test/CXX/class.access/class.friend/p1.cpp
test/Sema/overloadable.c
test/SemaCXX/extern-c.cpp
test/SemaCXX/friend.cpp
test/SemaCXX/linkage-spec.cpp
test/SemaCXX/linkage2.cpp