|  | // RUN: rm -rf %t | 
|  |  | 
|  | // Build Module and set its timestamp | 
|  | // 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 - | 
|  | // RUN: touch -m -a -t 201101010000 %t/Module.pcm | 
|  | // RUN: cp %t/Module.pcm %t/Module.pcm.saved | 
|  | // RUN: wc -c %t/Module.pcm > %t/Module.size.saved | 
|  |  | 
|  | // Build DependsOnModule | 
|  | // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -fsyntax-only -F %S/Inputs %s | 
|  | // RUN: diff %t/Module.pcm %t/Module.pcm.saved | 
|  | // RUN: cp %t/DependsOnModule.pcm %t/DependsOnModule.pcm.saved | 
|  |  | 
|  | // Rebuild Module, reset its timestamp, and verify its size hasn't changed | 
|  | // RUN: rm %t/Module.pcm | 
|  | // 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 - | 
|  | // RUN: touch -m -a -t 201101010000 %t/Module.pcm | 
|  | // RUN: wc -c %t/Module.pcm > %t/Module.size | 
|  | // RUN: diff %t/Module.size %t/Module.size.saved | 
|  | // RUN: cp %t/Module.pcm %t/Module.pcm.saved.2 | 
|  |  | 
|  | // The signature is the hash of the PCM content, we will not rebuild rebuild DependsOnModule. | 
|  | // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -fsyntax-only -F %S/Inputs %s | 
|  | // RUN: diff %t/Module.pcm %t/Module.pcm.saved.2 | 
|  | // RUN: diff %t/DependsOnModule.pcm %t/DependsOnModule.pcm.saved | 
|  |  | 
|  | // Rebuild Module, reset its timestamp, and verify its size hasn't changed | 
|  | // RUN: rm %t/Module.pcm | 
|  | // 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 - | 
|  | // RUN: touch -m -a -t 201101010000 %t/Module.pcm | 
|  | // RUN: wc -c %t/Module.pcm > %t/Module.size | 
|  | // RUN: diff %t/Module.size %t/Module.size.saved | 
|  | // RUN: cp %t/Module.pcm %t/Module.pcm.saved.2 | 
|  |  | 
|  | // Verify again with Module pre-imported. | 
|  | // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -fsyntax-only -F %S/Inputs %s | 
|  | // RUN: diff %t/Module.pcm %t/Module.pcm.saved.2 | 
|  | // RUN: diff %t/DependsOnModule.pcm %t/DependsOnModule.pcm.saved | 
|  |  | 
|  | #ifdef PREIMPORT | 
|  | @import Module; | 
|  | #endif | 
|  | @import DependsOnModule; |