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// 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 26 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 34 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 39 40#ifdef PREIMPORT 41@import Module; 42#endif 43@import DependsOnModule; 44