|  | // RUN: rm -rf %t | 
|  | // RUN: split-file %s %t | 
|  |  | 
|  | // This test checks that source files with uncommon extensions still undergo | 
|  | // dependency directives scan. If header.pch would not and b.h would, the scan | 
|  | // would fail when parsing `void function(B)` and not knowing the symbol B. | 
|  |  | 
|  | //--- module.modulemap | 
|  | module __PCH { header "header.pch" } | 
|  | module B { header "b.h" } | 
|  |  | 
|  | //--- header.pch | 
|  | #include "b.h" | 
|  | void function(B); | 
|  |  | 
|  | //--- b.h | 
|  | typedef int B; | 
|  |  | 
|  | //--- tu.c | 
|  | int main() { | 
|  | function(0); | 
|  | return 0; | 
|  | } | 
|  |  | 
|  | //--- cdb.json.in | 
|  | [{ | 
|  | "directory": "DIR", | 
|  | "file": "DIR/tu.c", | 
|  | "command": "clang -c DIR/tu.c -fmodules -fmodules-cache-path=DIR/cache -fimplicit-module-maps -include DIR/header.pch" | 
|  | }] | 
|  |  | 
|  | // RUN: sed -e "s|DIR|%/t|g" %t/cdb.json.in > %t/cdb.json | 
|  | // RUN: clang-scan-deps -compilation-database %t/cdb.json -format experimental-full > %t/deps.json |