102871701SBen Langmuir // Differences in -W warning options should result in different canonical module 202871701SBen Langmuir // build commands. 302871701SBen Langmuir 402871701SBen Langmuir // RUN: rm -rf %t 502871701SBen Langmuir // RUN: split-file %s %t 602871701SBen Langmuir // RUN: sed "s|DIR|%/t|g" %t/cdb.json.template > %t/cdb.json 702871701SBen Langmuir 802871701SBen Langmuir // RUN: clang-scan-deps -compilation-database %t/cdb.json -j 1 \ 902871701SBen Langmuir // RUN: -format experimental-full > %t/deps.json 1002871701SBen Langmuir // RUN: cat %t/deps.json | sed 's:\\\\\?:/:g' | FileCheck -DPREFIX=%/t %s 1102871701SBen Langmuir 1202871701SBen Langmuir // CHECK: { 1302871701SBen Langmuir // CHECK-NEXT: "modules": [ 1402871701SBen Langmuir // CHECK: { 1502871701SBen Langmuir // CHECK: "command-line": [ 1602871701SBen Langmuir // CHECK: "-Wall" 1702871701SBen Langmuir // CHECK: ] 1802871701SBen Langmuir // CHECK: "context-hash": "[[HASH1:.*]]" 1902871701SBen Langmuir // CHECK: "name": "Mod" 2002871701SBen Langmuir // CHECK-NEXT: } 2102871701SBen Langmuir // CHECK-NEXT: { 2202871701SBen Langmuir // CHECK: "command-line": [ 2302871701SBen Langmuir // CHECK-NOT: "-Wall" 2402871701SBen Langmuir // CHECK: ] 2502871701SBen Langmuir // CHECK: "context-hash": "[[HASH2:.*]]" 2602871701SBen Langmuir // CHECK: "name": "Mod" 2702871701SBen Langmuir // CHECK-NEXT: } 2802871701SBen Langmuir // CHECK-NEXT: ] 2902871701SBen Langmuir // CHECK-NEXT: "translation-units": [ 3002871701SBen Langmuir // CHECK-NEXT: { 3102871701SBen Langmuir // CHECK: "clang-module-deps": [ 3202871701SBen Langmuir // CHECK-NEXT: { 3302871701SBen Langmuir // CHECK-NEXT: "context-hash": "[[HASH1]]" 3402871701SBen Langmuir // CHECK-NEXT: "module-name": "Mod" 3502871701SBen Langmuir // CHECK-NEXT: } 3602871701SBen Langmuir // CHECK-NEXT: ] 3702871701SBen Langmuir // CHECK-NEXT: "command-line": [ 3802871701SBen Langmuir // CHECK: "-Wall" 3902871701SBen Langmuir // CHECK: ] 4002871701SBen Langmuir // CHECK: "input-file": "{{.*}}tu1.c" 4102871701SBen Langmuir // CHECK-NEXT: } 42*83902c40SBen Langmuir // CHECK: { 4302871701SBen Langmuir // CHECK: "clang-module-deps": [ 4402871701SBen Langmuir // CHECK-NEXT: { 4502871701SBen Langmuir // CHECK-NEXT: "context-hash": "[[HASH2]]" 4602871701SBen Langmuir // CHECK-NEXT: "module-name": "Mod" 4702871701SBen Langmuir // CHECK-NEXT: } 4802871701SBen Langmuir // CHECK-NEXT: ] 4902871701SBen Langmuir // CHECK-NEXT: "command-line": [ 5002871701SBen Langmuir // CHECK-NOT: "-Wall" 5102871701SBen Langmuir // CHECK: ] 5202871701SBen Langmuir // CHECK: "input-file": "{{.*}}tu2.c" 5302871701SBen Langmuir 5402871701SBen Langmuir //--- cdb.json.template 5502871701SBen Langmuir [ 5602871701SBen Langmuir { 5702871701SBen Langmuir "directory": "DIR", 5802871701SBen Langmuir "command": "clang -Wall -fsyntax-only DIR/tu1.c -fmodules -fimplicit-module-maps -fmodules-cache-path=DIR/cache", 5902871701SBen Langmuir "file": "DIR/tu1.c" 6002871701SBen Langmuir }, 6102871701SBen Langmuir { 6202871701SBen Langmuir "directory": "DIR", 6302871701SBen Langmuir "command": "clang -fsyntax-only DIR/tu2.c -fmodules -fimplicit-module-maps -fmodules-cache-path=DIR/cache", 6402871701SBen Langmuir "file": "DIR/tu2.c" 6502871701SBen Langmuir }, 6602871701SBen Langmuir ] 6702871701SBen Langmuir 6802871701SBen Langmuir //--- module.modulemap 6902871701SBen Langmuir module Mod { header "Mod.h" } 7002871701SBen Langmuir 7102871701SBen Langmuir //--- Mod.h 7202871701SBen Langmuir 7302871701SBen Langmuir //--- tu1.c 7402871701SBen Langmuir #include "Mod.h" 7502871701SBen Langmuir 7602871701SBen Langmuir //--- tu2.c 7702871701SBen Langmuir #include "Mod.h" 78