| 
 | 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:       "name": "A"  | 
 | 28 | +// CHECK-NEXT:     },  | 
 | 29 | +// CHECK-NEXT:     {  | 
 | 30 | +// CHECK-NEXT:       "clang-module-deps": [],  | 
 | 31 | +// CHECK-NEXT:       "clang-modulemap-file": "[[PREFIX]]/modules/B/module.modulemap",  | 
 | 32 | +// CHECK-NEXT:       "command-line": [  | 
 | 33 | +// CHECK-NOT:          "-fmodule-map-file=  | 
 | 34 | +// CHECK:            ],  | 
 | 35 | +// CHECK-NEXT:       "context-hash": "{{.*}}",  | 
 | 36 | +// CHECK-NEXT:       "file-deps": [  | 
 | 37 | +// CHECK:            ],  | 
 | 38 | +// CHECK-NEXT:       "name": "B"  | 
 | 39 | +// CHECK-NEXT:     }  | 
 | 40 | +// CHECK-NEXT:   ],  | 
 | 41 | +// CHECK-NEXT:   "translation-units": [  | 
 | 42 | +// CHECK:        ]  | 
 | 43 | +// CHECK:      }  | 
 | 44 | + | 
 | 45 | +//--- build/cdb.json.in  | 
 | 46 | +[{  | 
 | 47 | +  "directory": "DIR",  | 
 | 48 | +  "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",  | 
 | 49 | +  "file": "DIR/tu.m"  | 
 | 50 | +}]  | 
 | 51 | + | 
 | 52 | +//--- build/vfs.yaml.in  | 
 | 53 | + | 
 | 54 | +//--- tu.m  | 
 | 55 | +@import A;  | 
 | 56 | + | 
 | 57 | +//--- modules/A/module.modulemap  | 
 | 58 | +module A { header "A.h" }  | 
 | 59 | + | 
 | 60 | +//--- modules/A/A.h  | 
 | 61 | +#include <B.h>  | 
 | 62 | + | 
 | 63 | +//--- modules/B/module.modulemap  | 
 | 64 | +module B { header "B.h" }  | 
 | 65 | + | 
 | 66 | +//--- modules/B/B.h  | 
0 commit comments