diff options
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/Driver/cl-pch.cpp | 4 | ||||
-rw-r--r-- | clang/test/Driver/modules-ts.cpp | 38 |
2 files changed, 40 insertions, 2 deletions
diff --git a/clang/test/Driver/cl-pch.cpp b/clang/test/Driver/cl-pch.cpp index 19ef0926854..2503c973733 100644 --- a/clang/test/Driver/cl-pch.cpp +++ b/clang/test/Driver/cl-pch.cpp @@ -10,7 +10,7 @@ // CHECK-YC: -o // CHECK-YC: pchfile.pch // CHECK-YC: -x -// CHECK-YC: "c++" +// CHECK-YC: "c++-header" // 2. Use .pch file. // CHECK-YC: cc1 // CHECK-YC: -emit-obj @@ -158,7 +158,7 @@ // CHECK-YCFIFIFI: -o // CHECK-YCFIFIFI: foo2.pch // CHECK-YCFIFIFI: -x -// CHECK-YCFIFIFI: "c++" +// CHECK-YCFIFIFI: "c++-header" // CHECK-YCFIFIFI: foo2.h // 2. Use .pch file: Inlucdes foo2.pch and foo3.h // CHECK-YCFIFIFI: cc1 diff --git a/clang/test/Driver/modules-ts.cpp b/clang/test/Driver/modules-ts.cpp new file mode 100644 index 00000000000..0fdc61b6f9c --- /dev/null +++ b/clang/test/Driver/modules-ts.cpp @@ -0,0 +1,38 @@ +// Check compiling a module interface to a .pcm file. +// +// RUN: %clang -fmodules-ts -x c++-module --precompile %s -Dimplementation= -o %t.pcm -v 2>&1 | FileCheck %s --check-prefix=CHECK-PRECOMPILE +// +// CHECK-PRECOMPILE: -cc1 {{.*}} -emit-module-interface +// CHECK-PRECOMPILE-SAME: -o {{.*}}.pcm +// CHECK-PRECOMPILE-SAME: -x c++-module +// CHECK-PRECOMPILE-SAME: modules-ts.cpp + +// Check compiling a .pcm file to a .o file. +// +// RUN: %clang -fmodules-ts %t.pcm -c -o %t.pcm.o -v 2>&1 | FileCheck %s --check-prefix=CHECK-COMPILE +// +// CHECK-COMPILE: -cc1 {{.*}} -emit-obj +// CHECK-COMPILE-SAME: -o {{.*}}.pcm.o +// CHECK-COMPILE-SAME: -x pcm +// CHECK-COMPILE-SAME: {{.*}}.pcm + +// Check use of a .pcm file in another compilation. +// +// RUN: %clang -fmodules-ts -fmodule-file=%t.pcm %s -c -o %t.o -v 2>&1 | FileCheck %s --check-prefix=CHECK-USE +// +// CHECK-USE: -cc1 +// CHECK-USE-SAME: -emit-obj +// CHECK-USE-SAME: -fmodule-file={{.*}}.pcm +// CHECK-USE-SAME: -o {{.*}}.o{{"?}} {{.*}}-x c++ +// CHECK-USE-SAME: modules-ts.cpp + +// Check combining precompile and compile steps works. +// +// RUN: %clang -fmodules-ts -x c++-module %s -Dimplementation= -c -o %t.pcm.o -v 2>&1 | FileCheck %s --check-prefix=CHECK-PRECOMPILE --check-prefix=CHECK-COMPILE + +// Check that .cppm is treated as a module implicitly. +// RUN: cp %s %t.cppm +// RUN: %clang -fmodules-ts --precompile %t.cppm -Dimplementation= -o %t.pcm -v 2>&1 | FileCheck %s --check-prefix=CHECK-PRECOMPILE + +// Note, we use -Dimplementation= to make this a valid module interface unit when building the interface. +module implementation foo; |