1 // RUN: rm -rf %t 2 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 8 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 13 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 21 22 // But the signature at least is expected to change, so we rebuild DependsOnModule. 23 // NOTE: if we change how the signature is created, this test may need updating. 24 // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -fsyntax-only -F %S/Inputs %s 25 // RUN: diff %t/Module.pcm %t/Module.pcm.saved.2 26 // RUN: not diff %t/DependsOnModule.pcm %t/DependsOnModule.pcm.saved 27 28 // Rebuild Module, reset its timestamp, and verify its size hasn't changed 29 // RUN: rm %t/Module.pcm 30 // 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 - 31 // RUN: touch -m -a -t 201101010000 %t/Module.pcm 32 // RUN: wc -c %t/Module.pcm > %t/Module.size 33 // RUN: diff %t/Module.size %t/Module.size.saved 34 // RUN: cp %t/Module.pcm %t/Module.pcm.saved.2 35 36 // Verify again with Module pre-imported. 37 // NOTE: if we change how the signature is created, this test may need updating. 38 // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -fsyntax-only -F %S/Inputs %s 39 // RUN: diff %t/Module.pcm %t/Module.pcm.saved.2 40 // RUN: not diff %t/DependsOnModule.pcm %t/DependsOnModule.pcm.saved 41 42 #ifdef PREIMPORT 43 @import Module; 44 #endif 45 @import DependsOnModule; 46