| // Test that the changes from export imported modules and touched |
| // modules can be popullated as expected. |
| // |
| // RUN: rm -rf %t |
| // RUN: split-file %s %t |
| // RUN: cd %t |
| // |
| // RUN: %clang_cc1 -std=c++20 %t/A.cppm -emit-reduced-module-interface -o %t/A.pcm |
| // RUN: %clang_cc1 -std=c++20 %t/A.v1.cppm -emit-reduced-module-interface -o %t/A.v1.pcm |
| |
| // The BMI of B should change it export imports A, so all the change to A should be popullated |
| // to B. |
| // RUN: %clang_cc1 -std=c++20 %t/B.cppm -emit-reduced-module-interface -fmodule-file=A=%t/A.pcm \ |
| // RUN: -o %t/B.pcm |
| // RUN: %clang_cc1 -std=c++20 %t/B.cppm -emit-reduced-module-interface -fmodule-file=A=%t/A.v1.pcm \ |
| // RUN: -o %t/B.v1.pcm |
| // RUN: not diff %t/B.v1.pcm %t/B.pcm &> /dev/null |
| |
| //--- A.cppm |
| export module A; |
| export int funcA() { |
| return 43; |
| } |
| |
| //--- A.v1.cppm |
| export module A; |
| |
| export int funcA() { |
| return 43; |
| } |
| |
| //--- B.cppm |
| export module B; |
| export import A; |
| |
| export int funcB() { |
| return funcA(); |
| } |