]> granicus.if.org Git - clang/commitdiff
Move the extern "C" sema tests to a new file.
authorRafael Espindola <rafael.espindola@gmail.com>
Tue, 12 Mar 2013 19:45:57 +0000 (19:45 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Tue, 12 Mar 2013 19:45:57 +0000 (19:45 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176888 91177308-0d34-0410-b5e6-96231b3b80d8

test/SemaCXX/extern-c.cpp [new file with mode: 0644]
test/SemaCXX/function-redecl.cpp

diff --git a/test/SemaCXX/extern-c.cpp b/test/SemaCXX/extern-c.cpp
new file mode 100644 (file)
index 0000000..c4b1141
--- /dev/null
@@ -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'}}
+}
index 8cbda82c0b1b5019e196a8040efe6137edfed35d..b9d1f23af4024abddd4e1ccabfc77a9156eb84f6 100644 (file)
@@ -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'}}
-}