1// Check that unused directly passed -fmodule-map-file options get dropped. 2 3// RUN: rm -rf %t && split-file %s %t 4// RUN: sed -e "s|DIR|%/t|g" %t/build/cdb.json.in > %t/build/cdb.json 5// RUN: clang-scan-deps -compilation-database %t/build/cdb.json \ 6// RUN: -format experimental-full > %t/deps.json 7// RUN: cat %t/deps.json | sed 's:\\\\\?:/:g' | FileCheck %s -DPREFIX=%/t 8 9// CHECK: { 10// CHECK-NEXT: "modules": [ 11// CHECK-NEXT: { 12// CHECK-NEXT: "clang-module-deps": [ 13// CHECK-NEXT: { 14// CHECK-NEXT: "context-hash": "{{.*}}", 15// CHECK-NEXT: "module-name": "B" 16// CHECK-NEXT: } 17// CHECK-NEXT: ], 18// CHECK-NEXT: "clang-modulemap-file": "[[PREFIX]]/modules/A/module.modulemap", 19// CHECK-NEXT: "command-line": [ 20// CHECK-NOT: "-fmodule-map-file=[[PREFIX]]/modules/A/module.modulemap" 21// CHECK: "-fmodule-map-file=[[PREFIX]]/modules/B/module.modulemap" 22// CHECK-NOT: "-fmodule-map-file=[[PREFIX]]/modules/A/module.modulemap" 23// CHECK: ], 24// CHECK-NEXT: "context-hash": "{{.*}}", 25// CHECK-NEXT: "file-deps": [ 26// CHECK: ], 27// CHECK-NEXT: "link-libraries": [], 28// CHECK-NEXT: "name": "A" 29// CHECK-NEXT: }, 30// CHECK-NEXT: { 31// CHECK-NEXT: "clang-module-deps": [], 32// CHECK-NEXT: "clang-modulemap-file": "[[PREFIX]]/modules/B/module.modulemap", 33// CHECK-NEXT: "command-line": [ 34// CHECK-NOT: "-fmodule-map-file= 35// CHECK: ], 36// CHECK-NEXT: "context-hash": "{{.*}}", 37// CHECK-NEXT: "file-deps": [ 38// CHECK: ], 39// CHECK-NEXT: "link-libraries": [], 40// CHECK-NEXT: "name": "B" 41// CHECK-NEXT: } 42// CHECK-NEXT: ], 43// CHECK-NEXT: "translation-units": [ 44// CHECK: ] 45// CHECK: } 46 47//--- build/cdb.json.in 48[{ 49 "directory": "DIR", 50 "command": "clang -c DIR/tu.m -I DIR/modules/B -fmodule-map-file=DIR/modules/A/module.modulemap -fmodules -fmodules-cache-path=DIR/cache -fimplicit-module-maps", 51 "file": "DIR/tu.m" 52}] 53 54//--- build/vfs.yaml.in 55 56//--- tu.m 57@import A; 58 59//--- modules/A/module.modulemap 60module A { header "A.h" } 61 62//--- modules/A/A.h 63#include <B.h> 64 65//--- modules/B/module.modulemap 66module B { header "B.h" } 67 68//--- modules/B/B.h 69