xref: /llvm-project/clang/test/Modules/cxx20-force-check-input.cppm (revision 182e1c773421e097d42415fc4d9aee1fb431819a)
196122b5bSChuanqi Xu// RUN: rm -rf %t
296122b5bSChuanqi Xu// RUN: split-file %s %t
396122b5bSChuanqi Xu//
496122b5bSChuanqi Xu// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple \
5*182e1c77SChuanqi Xu// RUN:     -fforce-check-cxx20-modules-input-files \
696122b5bSChuanqi Xu// RUN:     %t/a.cppm -emit-module-interface -o %t/a.pcm
796122b5bSChuanqi Xu//
896122b5bSChuanqi Xu// RUN: echo "inline int bar = 46;" >> %t/foo.h
9*182e1c77SChuanqi Xu// RUN: not %clang_cc1 -std=c++20 -triple %itanium_abi_triple \
10*182e1c77SChuanqi Xu// RUN:     -fforce-check-cxx20-modules-input-files %t/a.pcm \
11*182e1c77SChuanqi Xu// RUN:     -emit-llvm -o -  2>&1 | FileCheck %t/a.cppm -check-prefix=CHECK-HEADER-FAILURE
12*182e1c77SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple \
13*182e1c77SChuanqi Xu// RUN:     -fforce-check-cxx20-modules-input-files \
14*182e1c77SChuanqi Xu// RUN:     %t/a.cppm -emit-module-interface -o %t/a.pcm
15*182e1c77SChuanqi Xu
1696122b5bSChuanqi Xu// RUN: echo "export int var = 43;" >> %t/a.cppm
1796122b5bSChuanqi Xu//
1896122b5bSChuanqi Xu// RUN: not %clang_cc1 -std=c++20 -triple %itanium_abi_triple \
1996122b5bSChuanqi Xu// RUN:     -fforce-check-cxx20-modules-input-files %t/a.pcm \
2096122b5bSChuanqi Xu// RUN:     -emit-llvm -o -  2>&1 | FileCheck %t/a.cppm -check-prefix=CHECK-FAILURE
2196122b5bSChuanqi Xu
2296122b5bSChuanqi Xu//--- foo.h
2396122b5bSChuanqi Xuinline int foo = 43;
2496122b5bSChuanqi Xu
2596122b5bSChuanqi Xu//--- a.cppm
2696122b5bSChuanqi Xu// expected-no-diagnostics
2796122b5bSChuanqi Xumodule;
2896122b5bSChuanqi Xu#include "foo.h"
2996122b5bSChuanqi Xuexport module a;
3096122b5bSChuanqi Xuexport using ::foo;
3196122b5bSChuanqi Xu
32*182e1c77SChuanqi Xu// CHECK-HEADER-FAILURE: fatal error:{{.*}}foo.h' has been modified since the AST file {{.*}}was built
3396122b5bSChuanqi Xu// CHECK-FAILURE: fatal error:{{.*}}a.cppm' has been modified since the AST file {{.*}}was built
34