Author: Chuanqi Xu
Date: 2023-02-16T17:02:04+08:00
New Revision: f8d5f0e53b04040cebbba639530133b261a4432f

URL: 
https://github.com/llvm/llvm-project/commit/f8d5f0e53b04040cebbba639530133b261a4432f
DIFF: 
https://github.com/llvm/llvm-project/commit/f8d5f0e53b04040cebbba639530133b261a4432f.diff

LOG: [NFC] Add two tests for C++ modules

One test for checking the decls in language linkage shouldn't be
discarded and can be mangled correctly.

Another one for checking we can't export again in an export decl.

Added: 
    clang/test/Modules/export-in-another-export.cppm
    clang/test/Modules/language-linkage.cppm

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/clang/test/Modules/export-in-another-export.cppm 
b/clang/test/Modules/export-in-another-export.cppm
new file mode 100644
index 000000000000..38cb4d6c4a8c
--- /dev/null
+++ b/clang/test/Modules/export-in-another-export.cppm
@@ -0,0 +1,5 @@
+// RUN: %clang_cc1 -std=c++20 %s -fsyntax-only -verify
+export module M;
+export { // expected-note {{export block begins here}}
+    export int foo() { return 43; } // expected-error {{export declaration 
appears within another export declaration}}
+}

diff  --git a/clang/test/Modules/language-linkage.cppm 
b/clang/test/Modules/language-linkage.cppm
new file mode 100644
index 000000000000..bf7982cd9207
--- /dev/null
+++ b/clang/test/Modules/language-linkage.cppm
@@ -0,0 +1,18 @@
+// Make sure that the declarations inside the language linkage can
+// be generated correctly.
+//
+// RUN: rm -fr %t
+// RUN: mkdir %t
+//
+// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple %s 
-emit-module-interface -o %t/M.pcm
+// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple %t/M.pcm -S 
-emit-llvm -disable-llvm-passes -o - | FileCheck %s
+export module M;
+
+extern "C++" {
+void foo() {} 
+}
+
+extern "C" void bar() {}
+
+// CHECK: define {{.*}}@bar(
+// CHECK: define {{.*}}@_Z3foov(


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to