| // Testing that adding a new line in a module interface unit won't cause the BMI |
| // of consuming module unit changes. |
| // 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 may not be the same since the source location differs. |
| // RUN: not diff %t/A.pcm %t/A.v1.pcm &> /dev/null |
| // The BMI of B shouldn't change since all the locations remain the same. |
| // RUN: %clang_cc1 -std=c++20 %t/B.cppm -emit-reduced-module-interface -fmodule-file=A=%t/A.pcm \ |
| // RUN: %clang_cc1 -std=c++20 %t/B.cppm -emit-reduced-module-interface -fmodule-file=A=%t/A.v1.pcm \ |
| // RUN: diff %t/B.v1.pcm %t/B.pcm &> /dev/null |
| // The BMI of C may change since the locations for instantiations changes. |
| // RUN: %clang_cc1 -std=c++20 %t/C.cppm -emit-reduced-module-interface -fmodule-file=A=%t/A.pcm \ |
| // RUN: %clang_cc1 -std=c++20 %t/C.cppm -emit-reduced-module-interface -fmodule-file=A=%t/A.v1.pcm \ |
| // RUN: not diff %t/C.v1.pcm %t/C.pcm &> /dev/null |
| export template <class T> |
| export template <class T> |
| export inline void testD() { |