12d1e46feSJan Svoboda // RUN: rm -rf %t 22d1e46feSJan Svoboda // RUN: split-file %s %t 3285ec537SJan Svoboda 42d1e46feSJan Svoboda //--- cdb.json.template 52d1e46feSJan Svoboda [ 62d1e46feSJan Svoboda { 72d1e46feSJan Svoboda "directory": "DIR", 82d1e46feSJan Svoboda "command": "clang -c DIR/tu.c -fmodules -target i386-apple-ios14.0-simulator -fmodules-cache-path=DIR/cache -Wno-error=invalid-ios-deployment-target -o DIR/tu.o", 92d1e46feSJan Svoboda "file": "DIR/tu.c" 102d1e46feSJan Svoboda } 112d1e46feSJan Svoboda ] 122d1e46feSJan Svoboda //--- mod.h 132d1e46feSJan Svoboda //--- module.modulemap 142d1e46feSJan Svoboda module mod { header "mod.h" } 152d1e46feSJan Svoboda //--- tu.c 162d1e46feSJan Svoboda #include "mod.h" 172d1e46feSJan Svoboda 182d1e46feSJan Svoboda // RUN: sed "s|DIR|%/t|g" %t/cdb.json.template > %t/cdb.json 19c4b13f7aSJan Svoboda // RUN: clang-scan-deps -compilation-database %t/cdb.json -format experimental-full 2>&1 > %t/result.json 20c4b13f7aSJan Svoboda // RUN: cat %t/result.json | sed 's:\\\\\?:/:g' | FileCheck %s -DPREFIX=%/t 21285ec537SJan Svoboda 22285ec537SJan Svoboda // Check that the '-Wno-error=invalid-ios-deployment-target' option is being 23285ec537SJan Svoboda // respected and invalid arguments like '-target i386-apple-ios14.0-simulator' 24285ec537SJan Svoboda // do not result in an error. 25285ec537SJan Svoboda 26285ec537SJan Svoboda // CHECK-NOT: error: 27c4b13f7aSJan Svoboda // CHECK: { 28285ec537SJan Svoboda // CHECK-NEXT: "modules": [ 29285ec537SJan Svoboda // CHECK-NEXT: { 30285ec537SJan Svoboda // CHECK-NEXT: "clang-module-deps": [], 31285ec537SJan Svoboda // CHECK-NEXT: "clang-modulemap-file": "[[PREFIX]]/module.modulemap", 32285ec537SJan Svoboda // CHECK-NEXT: "command-line": [ 33285ec537SJan Svoboda // CHECK-NEXT: "-cc1" 34285ec537SJan Svoboda // CHECK: ], 35285ec537SJan Svoboda // CHECK-NEXT: "context-hash": "[[HASH_MOD:.*]]", 36285ec537SJan Svoboda // CHECK-NEXT: "file-deps": [ 37*9d4837f4SJan Svoboda // CHECK-NEXT: "[[PREFIX]]/module.modulemap", 38285ec537SJan Svoboda // CHECK-NEXT: "[[PREFIX]]/mod.h" 39285ec537SJan Svoboda // CHECK-NEXT: ], 4068eb3b20SArtem Chikin // CHECK-NEXT: "link-libraries": [], 41285ec537SJan Svoboda // CHECK-NEXT: "name": "mod" 42285ec537SJan Svoboda // CHECK-NEXT: } 43285ec537SJan Svoboda // CHECK-NEXT: ], 44285ec537SJan Svoboda // CHECK-NEXT: "translation-units": [ 45285ec537SJan Svoboda // CHECK-NEXT: { 4683902c40SBen Langmuir // CHECK: "clang-context-hash": "[[HASH_TU:.*]], 47285ec537SJan Svoboda // CHECK-NEXT: "clang-module-deps": [ 48285ec537SJan Svoboda // CHECK-NEXT: { 49285ec537SJan Svoboda // CHECK-NEXT: "context-hash": "[[HASH_MOD]]", 50285ec537SJan Svoboda // CHECK-NEXT: "module-name": "mod" 51285ec537SJan Svoboda // CHECK-NEXT: } 52285ec537SJan Svoboda // CHECK-NEXT: ], 53285ec537SJan Svoboda // CHECK-NEXT: "command-line": [ 5483902c40SBen Langmuir // CHECK-NOT: "-fimplicit-modules" 5583902c40SBen Langmuir // CHECK-NOT: "-fimplicit-module-maps" 5671e32d5cSJan Svoboda // CHECK: ], 5783902c40SBen Langmuir // CHECK: "file-deps": [ 58285ec537SJan Svoboda // CHECK-NEXT: "[[PREFIX]]/tu.c" 59285ec537SJan Svoboda // CHECK-NEXT: ], 60285ec537SJan Svoboda // CHECK-NEXT: "input-file": "[[PREFIX]]/tu.c" 61285ec537SJan Svoboda // CHECK-NEXT: } 62