69 lines · plain
1// Check that unused directly passed -fmodule-map-file options get dropped.2 3// RUN: rm -rf %t && split-file %s %t4// RUN: sed -e "s|DIR|%/t|g" %t/build/cdb.json.in > %t/build/cdb.json5// RUN: clang-scan-deps -compilation-database %t/build/cdb.json \6// RUN: -format experimental-full > %t/deps.json7// RUN: cat %t/deps.json | sed 's:\\\\\?:/:g' | FileCheck %s -DPREFIX=%/t8 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.in48[{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.in55 56//--- tu.m57@import A;58 59//--- modules/A/module.modulemap60module A { header "A.h" }61 62//--- modules/A/A.h63#include <B.h>64 65//--- modules/B/module.modulemap66module B { header "B.h" }67 68//--- modules/B/B.h69