Remove the hack that avoided mangling static functions in extern C contexts.
authorRafael Espindola <rafael.espindola@gmail.com>
Sat, 23 Feb 2013 00:26:28 +0000 (00:26 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Sat, 23 Feb 2013 00:26:28 +0000 (00:26 +0000)
commit16c8cf0e11dd7f53d3a50609d5821f56e6b52c1a
treeeb36aec59db85b432616af7aa244a275efdaa82f
parent47f9f2d1e670f700f18800a09c2a4fcd410658aa
Remove the hack that avoided mangling static functions in extern C contexts.

Weather we should give C language linkage to functions and variables with
internal linkage probably depends on how much code assumes it. The standard
says they should have no language linkage, but gcc and msvc assign them
C language linkage.

This commit removes the hack that was preventing the mangling on static
functions declare in extern C contexts. It is an experiment to see if we
can implement the rules in the standard.

If it turns out that many users depend on these functions and variables
having C language linkage, we should change isExternC instead and try
to convince the CWG to change the standard.

llvm-svn: 175937
clang/lib/AST/ItaniumMangle.cpp
clang/lib/Sema/SemaOverload.cpp
clang/test/CodeGenCXX/c-linkage.cpp
clang/test/SemaCXX/linkage2.cpp