// RUN: rm -rf %t // RUN: split-file %s %t //--- sources/FW/Private.h #include //--- sources/FW/PrivateUnmapped.h #include //--- sources/FW/Public.h #include //--- frameworks/FW.framework/Headers/PublicPresent.h // empty //--- frameworks/FW.framework/Modules/module.modulemap framework module FW { umbrella header "Public.h" } //--- frameworks/FW.framework/Modules/module.private.modulemap framework module FW_Private { umbrella header "Private.h" } //--- vfs.json.in { "case-sensitive": "false", "version": 0, "roots": [ { "contents": [ { "external-contents": "DIR/sources/FW/Public.h", "name": "Public.h", "type": "file" } ], "name": "DIR/frameworks/FW.framework/Headers", "type": "directory" }, { "contents": [ { "external-contents": "DIR/sources/FW/Private.h", "name": "Private.h", "type": "file" } ], "name": "DIR/frameworks/FW.framework/PrivateHeaders", "type": "directory" } ] } //--- tu.m #import // expected-no-diagnostics // RUN: sed -e "s|DIR|%/t|g" %t/vfs.json.in > %t/vfs.json // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t/cache \ // RUN: -ivfsoverlay %t/vfs.json -I %t/sources -F %t/frameworks -fsyntax-only %t/tu.m -verify