diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-03-12 19:45:57 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-03-12 19:45:57 +0000 |
commit | c812c3ae43e0608c9ccf7f4c5f71f376609eecae (patch) | |
tree | 065ca5b407af3ccafaeab46daeb3521278563fcd | |
parent | a29e0fafe7649131fb2d8eba3d719cdec92b236a (diff) |
Move the extern "C" sema tests to a new file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176888 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | test/SemaCXX/extern-c.cpp | 46 | ||||
-rw-r--r-- | test/SemaCXX/function-redecl.cpp | 45 |
2 files changed, 46 insertions, 45 deletions
diff --git a/test/SemaCXX/extern-c.cpp b/test/SemaCXX/extern-c.cpp new file mode 100644 index 0000000000..c4b1141b65 --- /dev/null +++ b/test/SemaCXX/extern-c.cpp @@ -0,0 +1,46 @@ +// RUN: %clang_cc1 -fsyntax-only -verify %s + +namespace test1 { + extern "C" { + void f() { + void test1_g(int); // expected-note {{previous declaration is here}} + } + } +} +int test1_g(int); // expected-error {{functions that differ only in their return type cannot be overloaded}} + +namespace test2 { + extern "C" { + void f() { + extern int test2_x; // expected-note {{previous definition is here}} + } + } +} +float test2_x; // expected-error {{redefinition of 'test2_x' with a different type: 'float' vs 'int'}} + +namespace test3 { + extern "C" { + void f() { + extern int test3_b; // expected-note {{previous definition is here}} + } + } + extern "C" { + float test3_b; // expected-error {{redefinition of 'test3_b' with a different type: 'float' vs 'int'}} + } +} + +extern "C" { + void test4_f() { + extern int test4_b; // expected-note {{previous definition is here}} + } +} +static float test4_b; // expected-error {{redefinition of 'test4_b' with a different type: 'float' vs 'int'}} + +extern "C" { + void test5_f() { + extern int test5_b; // expected-note {{previous definition is here}} + } +} +extern "C" { + static float test5_b; // expected-error {{redefinition of 'test5_b' with a different type: 'float' vs 'int'}} +} diff --git a/test/SemaCXX/function-redecl.cpp b/test/SemaCXX/function-redecl.cpp index 8cbda82c0b..b9d1f23af4 100644 --- a/test/SemaCXX/function-redecl.cpp +++ b/test/SemaCXX/function-redecl.cpp @@ -116,48 +116,3 @@ bool Foo::isGood() { // expected-error {{out-of-line definition of 'isGood' does } void Foo::beEvil() {} // expected-error {{out-of-line definition of 'beEvil' does not match any declaration in namespace 'redecl_typo::Foo'; did you mean 'BeEvil'?}} } - -namespace test2 { - extern "C" { - void f() { - void test2_g(int); // expected-note {{previous declaration is here}} - } - } -} -int test2_g(int); // expected-error {{functions that differ only in their return type cannot be overloaded}} - -namespace test3 { - extern "C" { - void f() { - extern int test3_x; // expected-note {{previous definition is here}} - } - } -} -float test3_x; // expected-error {{redefinition of 'test3_x' with a different type: 'float' vs 'int'}} - -namespace test4 { - extern "C" { - void f() { - extern int b; // expected-note {{previous definition is here}} - } - } - extern "C" { - float b; // expected-error {{redefinition of 'b' with a different type: 'float' vs 'int'}} - } -} - -extern "C" { - void test5_f() { - extern int test5_b; // expected-note {{previous definition is here}} - } -} -static float test5_b; // expected-error {{redefinition of 'test5_b' with a different type: 'float' vs 'int'}} - -extern "C" { - void test6_f() { - extern int test6_b; // expected-note {{previous definition is here}} - } -} -extern "C" { - static float test6_b; // expected-error {{redefinition of 'test6_b' with a different type: 'float' vs 'int'}} -} |