[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / Modules / rebuild.m
blob150c2ce266e49f0f9864089ac4f3d7d4276b6280
1 // RUN: rm -rf %t
3 // Build Module and set its timestamp
4 // RUN: echo '@import Module;' | %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -fsyntax-only -F %S/Inputs -x objective-c -
5 // RUN: touch -m -a -t 201101010000 %t/Module.pcm
6 // RUN: cp %t/Module.pcm %t/Module.pcm.saved
7 // RUN: wc -c %t/Module.pcm > %t/Module.size.saved
9 // Build DependsOnModule
10 // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -fsyntax-only -F %S/Inputs %s
11 // RUN: diff %t/Module.pcm %t/Module.pcm.saved
12 // RUN: cp %t/DependsOnModule.pcm %t/DependsOnModule.pcm.saved
14 // Rebuild Module, reset its timestamp, and verify its size hasn't changed
15 // RUN: rm %t/Module.pcm
16 // RUN: echo '@import Module;' | %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -fsyntax-only -F %S/Inputs -x objective-c -
17 // RUN: touch -m -a -t 201101010000 %t/Module.pcm
18 // RUN: wc -c %t/Module.pcm > %t/Module.size
19 // RUN: diff %t/Module.size %t/Module.size.saved
20 // RUN: cp %t/Module.pcm %t/Module.pcm.saved.2
22 // The signature is the hash of the PCM content, we will not rebuild rebuild DependsOnModule.
23 // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -fsyntax-only -F %S/Inputs %s
24 // RUN: diff %t/Module.pcm %t/Module.pcm.saved.2
25 // RUN: diff %t/DependsOnModule.pcm %t/DependsOnModule.pcm.saved
27 // Rebuild Module, reset its timestamp, and verify its size hasn't changed
28 // RUN: rm %t/Module.pcm
29 // RUN: echo '@import Module;' | %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -fsyntax-only -F %S/Inputs -x objective-c -
30 // RUN: touch -m -a -t 201101010000 %t/Module.pcm
31 // RUN: wc -c %t/Module.pcm > %t/Module.size
32 // RUN: diff %t/Module.size %t/Module.size.saved
33 // RUN: cp %t/Module.pcm %t/Module.pcm.saved.2
35 // Verify again with Module pre-imported.
36 // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -fsyntax-only -F %S/Inputs %s
37 // RUN: diff %t/Module.pcm %t/Module.pcm.saved.2
38 // RUN: diff %t/DependsOnModule.pcm %t/DependsOnModule.pcm.saved
40 #ifdef PREIMPORT
41 @import Module;
42 #endif
43 @import DependsOnModule;