xref: /llvm-project/clang/test/Modules/pr61783.cppm (revision 7c1d9b15eee3a34678addab2bab66f3020ac0753)
1// RUN: rm -rf %t
2// RUN: mkdir -p %t
3// RUN: split-file %s %t
4//
5// RUN: %clang_cc1 -std=c++20 -triple x86_64-pc-windows-msvc19.11.0 -fms-extensions %t/mod.cppm -emit-module-interface \
6// RUN:     -o %t/mod.pcm
7// RUN: %clang_cc1 -std=c++20 -triple x86_64-pc-windows-msvc19.11.0 -fms-extensions %t/mod.pcm -emit-llvm -o - | \
8// RUN:     FileCheck %t/mod.cppm
9// RUN: %clang_cc1 -std=c++20 -triple x86_64-pc-windows-msvc19.11.0 -fms-extensions %t/user.cpp -fmodule-file=mod=%t/mod.pcm \
10// RUN:     -emit-llvm -o - | FileCheck %t/user.cpp
11
12// Test again with reduced BMI
13// RUN: %clang_cc1 -std=c++20 -triple x86_64-pc-windows-msvc19.11.0 -fms-extensions %t/mod.cppm -emit-reduced-module-interface \
14// RUN:     -o %t/mod.pcm
15// RUN: %clang_cc1 -std=c++20 -triple x86_64-pc-windows-msvc19.11.0 -fms-extensions %t/mod.pcm -emit-llvm -o - | \
16// RUN:     FileCheck %t/mod.cppm
17// RUN: %clang_cc1 -std=c++20 -triple x86_64-pc-windows-msvc19.11.0 -fms-extensions %t/user.cpp -fmodule-file=mod=%t/mod.pcm \
18// RUN:     -emit-llvm -o - | FileCheck %t/user.cpp
19
20//--- mod.cppm
21module;
22
23#pragma comment(lib, "msvcprt.lib")
24#pragma detect_mismatch("myLib_version", "9")
25
26export module mod;
27
28// CHECK: ![[NUM:[0-9]+]] ={{.*}}msvcprt.lib
29// CHECK: ![[NUM:[0-9]+]] ={{.*}}FAILIFMISMATCH{{.*}}myLib_version=9
30
31//--- user.cpp
32#pragma detect_mismatch("myLib_version", "1")
33import mod;
34
35// CHECK: ![[NUM:[0-9]+]] ={{.*}}FAILIFMISMATCH{{.*}}myLib_version=1
36// CHECK: ![[NUM:[0-9]+]] ={{.*}}msvcprt.lib
37// CHECK: ![[NUM:[0-9]+]] ={{.*}}FAILIFMISMATCH{{.*}}myLib_version=9
38