xref: /llvm-project/clang/test/Modules/implicit-modules-use-lock.m (revision d8a08fae0af9aa09c108b3e7c60f192249dd2098)
1// Confirm -fimplicit-modules-use-lock and -fno-implicit-modules-use-lock control
2// whether building a module triggers -Rmodule-lock, indirectly checking whether
3// a lock manager is being used.
4//
5// RUN: rm -rf %t.cache
6// RUN: %clang_cc1 -fmodules -fimplicit-module-maps \
7// RUN:   -fimplicit-modules-use-lock -Rmodule-lock -Rmodule-build \
8// RUN:   -fmodules-cache-path=%t.cache -I%S/Inputs/system-out-of-date \
9// RUN:   -fsyntax-only %s -Wnon-modular-include-in-framework-module \
10// RUN:   -Werror=non-modular-include-in-framework-module \
11// RUN:   -verify=locks,build
12//
13// RUN: rm -rf %t.cache
14// RUN: %clang_cc1 -fmodules -fimplicit-module-maps \
15// RUN:   -fno-implicit-modules-use-lock -Rmodule-lock -Rmodule-build \
16// RUN:   -fmodules-cache-path=%t.cache -I%S/Inputs/system-out-of-date \
17// RUN:   -fsyntax-only %s -Wnon-modular-include-in-framework-module \
18// RUN:   -Werror=non-modular-include-in-framework-module \
19// RUN:   -verify=build
20
21@import X; // locks-remark-re {{locking '{{.*}}.pcm' to build module 'X'}} \
22           // build-remark {{building module 'X'}}                         \
23           // build-remark {{finished building module 'X'}}
24