diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-02-23 00:26:28 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-02-23 00:26:28 +0000 |
| commit | 16c8cf0e11dd7f53d3a50609d5821f56e6b52c1a (patch) | |
| tree | eb36aec59db85b432616af7aa244a275efdaa82f /clang/test/SemaCXX/linkage2.cpp | |
| parent | 47f9f2d1e670f700f18800a09c2a4fcd410658aa (diff) | |
| download | bcm5719-llvm-16c8cf0e11dd7f53d3a50609d5821f56e6b52c1a.tar.gz bcm5719-llvm-16c8cf0e11dd7f53d3a50609d5821f56e6b52c1a.zip | |
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
Diffstat (limited to 'clang/test/SemaCXX/linkage2.cpp')
| -rw-r--r-- | clang/test/SemaCXX/linkage2.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/clang/test/SemaCXX/linkage2.cpp b/clang/test/SemaCXX/linkage2.cpp index 744741b7ca6..2cee581b49c 100644 --- a/clang/test/SemaCXX/linkage2.cpp +++ b/clang/test/SemaCXX/linkage2.cpp @@ -12,12 +12,12 @@ namespace test1 { } } -// FIXME: This should be OK. Both test2_f don't have language linkage since they -// have internal linkage. +// This is OK. Both test2_f don't have language linkage since they have +// internal linkage. extern "C" { - static void test2_f() { // expected-note {{previous definition is here}} + static void test2_f() { } - static void test2_f(int x) { // expected-error {{conflicting types for 'test2_f'}} + static void test2_f(int x) { } } |

