[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / Modules / no-transitive-decl-change-2.cppm
blobfe29d9169201d66ace42c29d07a6dc24351dddc5
1 // Test that adding a new unused decl within reduced BMI may not produce a transitive change.
2 //
3 // RUN: rm -rf %t
4 // RUN: split-file %s %t
5 //
6 // RUN: %clang_cc1 -std=c++20 -emit-reduced-module-interface %t/A.cppm -o %t/A.pcm
7 // RUN: %clang_cc1 -std=c++20 -emit-reduced-module-interface %t/B.cppm -o %t/B.pcm \
8 // RUN:     -fmodule-file=A=%t/A.pcm
9 //
10 // RUN: %clang_cc1 -std=c++20 -emit-reduced-module-interface %t/A.v1.cppm -o %t/A.v1.pcm
11 // RUN: %clang_cc1 -std=c++20 -emit-reduced-module-interface %t/B.cppm -o %t/B.v1.pcm \
12 // RUN:     -fmodule-file=A=%t/A.v1.pcm
14 // RUN: diff %t/B.pcm %t/B.v1.pcm &> /dev/null
16 //--- A.cppm
17 export module A;
18 export int a() { return 44; }
20 //--- A.v1.cppm
21 export module A;
22 int a_impl() { return 48; }
23 export int a() { return a_impl(); }
25 //--- B.cppm
26 export module B;
27 import A;
28 export int b() { return a(); }