1// Test that adding a new identifier 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 13// 14// RUN: diff %t/B.pcm %t/B.v1.pcm &> /dev/null 15 16//--- A.cppm 17export module A; 18export int a(); 19 20//--- A.v1.cppm 21export module A; 22export int a(); 23export int a2(); 24 25//--- B.cppm 26export module B; 27import A; 28export int b() { return a(); } 29