<div dir="ltr"><div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Wed, 31 Oct 2018 at 18:05, Shoaib Meenai via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang="EN-US">
<div class="gmail-m_8117945595640667282WordSection1">
<p class="MsoNormal">Comment inline (Outlook handles quoting terribly, so I'm not sure how much it'll end up standing out, but I believe you typo'd "preprocessor" as " prepreocssor").<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(181,196,223);padding:3pt 0in 0in">
<p class="MsoNormal" style="margin-left:0.5in"><b><span style="font-size:12pt;color:black">From:
</span></b><span style="font-size:12pt;color:black">cfe-commits <<a href="mailto:cfe-commits-bounces@lists.llvm.org" target="_blank">cfe-commits-bounces@lists.llvm.org</a>> on behalf of Richard Smith via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>><br>
<b>Reply-To: </b>Richard Smith <<a href="mailto:richard-llvm@metafoo.co.uk" target="_blank">richard-llvm@metafoo.co.uk</a>><br>
<b>Date: </b>Wednesday, October 31, 2018 at 5:49 PM<br>
<b>To: </b>"<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>" <<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>><br>
<b>Subject: </b>r345803 - Fix regression in behavior of clang -x c++-header -fmodule-name=XXX<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">Author: rsmith<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">Date: Wed Oct 31 17:46:54 2018<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">New Revision: 345803<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D345803-26view-3Drev&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=fuhDqKU4xiQGQizq6Oszj5RJTGnnRK6S35y0Pk_bRcg&s=xpyBxlufGiJ3htehnYAB4PVF1WQvpPF9AR-tGM8UMfQ&e=" target="_blank">
https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D345803-26view-3Drev&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=fuhDqKU4xiQGQizq6Oszj5RJTGnnRK6S35y0Pk_bRcg&s=xpyBxlufGiJ3htehnYAB4PVF1WQvpPF9AR-tGM8UMfQ&e=</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">Log:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">Fix regression in behavior of clang -x c++-header -fmodule-name=XXX<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">-fsyntax-only.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">The driver accidentally stopped passing the input filenames on to -cc1<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">in this mode due to confusion over what action was being requested.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">This change also fixes a couple of crashes I encountered when passing<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">multiple files to such a -cc1 invocation.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">Added:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">    cfe/trunk/test/Modules/strict-decluse-headers.cpp<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">Modified:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">    cfe/trunk/lib/Driver/ToolChains/Clang.cpp<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">    cfe/trunk/lib/Frontend/CompilerInstance.cpp<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">    cfe/trunk/lib/Lex/ModuleMap.cpp<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">    cfe/trunk/test/Driver/header-module.cpp<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">Modified: cfe/trunk/lib/Driver/ToolChains/Clang.cpp<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_lib_Driver_ToolChains_Clang.cpp-3Frev-3D345803-26r1-3D345802-26r2-3D345803-26view-3Ddiff&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=fuhDqKU4xiQGQizq6Oszj5RJTGnnRK6S35y0Pk_bRcg&s=ffTui8JxCdjW5IP4JDgCIPKtFCLV4p96l0j4dM3OM4o&e=" target="_blank">
https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_lib_Driver_ToolChains_Clang.cpp-3Frev-3D345803-26r1-3D345802-26r2-3D345803-26view-3Ddiff&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=fuhDqKU4xiQGQizq6Oszj5RJTGnnRK6S35y0Pk_bRcg&s=ffTui8JxCdjW5IP4JDgCIPKtFCLV4p96l0j4dM3OM4o&e=</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">==============================================================================<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">--- cfe/trunk/lib/Driver/ToolChains/Clang.cpp (original)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+++ cfe/trunk/lib/Driver/ToolChains/Clang.cpp Wed Oct 31 17:46:54 2018<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">@@ -3250,8 +3250,6 @@ void Clang::ConstructJob(Compilation &C,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">   bool IsCuda = JA.isOffloading(Action::OFK_Cuda);<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">   bool IsHIP = JA.isOffloading(Action::OFK_HIP);<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">   bool IsOpenMPDevice = JA.isDeviceOffloading(Action::OFK_OpenMP);<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">-  bool IsModulePrecompile =<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">-      isa<PrecompileJobAction>(JA) && JA.getType() == types::TY_ModuleFile;<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">   bool IsHeaderModulePrecompile = isa<HeaderModulePrecompileJobAction>(JA);<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">   // A header module compilation doesn't have a main input file, so invent a<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">@@ -3272,7 +3270,7 @@ void Clang::ConstructJob(Compilation &C,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">   for (const InputInfo &I : Inputs) {<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">     if (&I == &Input) {<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">       // This is the primary input.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">-    } else if (IsModulePrecompile &&<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+    } else if (IsHeaderModulePrecompile &&<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">                types::getPrecompiledType(I.getType()) == types::TY_PCH) {<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">       types::ID Expected =<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">           types::lookupHeaderTypeForSourceType(Inputs[0].getType());<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">Modified: cfe/trunk/lib/Frontend/CompilerInstance.cpp<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_lib_Frontend_CompilerInstance.cpp-3Frev-3D345803-26r1-3D345802-26r2-3D345803-26view-3Ddiff&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=fuhDqKU4xiQGQizq6Oszj5RJTGnnRK6S35y0Pk_bRcg&s=KzBhYXfmPHLMrIoUboynLdE1ADPHU0qpcmI6eN5hG9w&e=" target="_blank">
https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_lib_Frontend_CompilerInstance.cpp-3Frev-3D345803-26r1-3D345802-26r2-3D345803-26view-3Ddiff&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=fuhDqKU4xiQGQizq6Oszj5RJTGnnRK6S35y0Pk_bRcg&s=KzBhYXfmPHLMrIoUboynLdE1ADPHU0qpcmI6eN5hG9w&e=</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">==============================================================================<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">--- cfe/trunk/lib/Frontend/CompilerInstance.cpp (original)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+++ cfe/trunk/lib/Frontend/CompilerInstance.cpp Wed Oct 31 17:46:54 2018<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">@@ -372,6 +372,9 @@ static void InitializeFileRemapping(Diag<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">void CompilerInstance::createPreprocessor(TranslationUnitKind TUKind) {<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">   const PreprocessorOptions &PPOpts = getPreprocessorOpts();<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+  // The module manager holds a reference to the old prepreocssor (if any).<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I'm guessing this was meant to be "preprocessor"?</p></div></div></div></blockquote><div><br></div><div>It was, thanks! Fixed in r345805.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_8117945595640667282WordSection1"><div>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+  ModuleManager.reset();<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">   // Create a PTH manager if we are using some form of a token cache.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">   PTHManager *PTHMgr = nullptr;<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">   if (!PPOpts.TokenCache.empty())<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">Modified: cfe/trunk/lib/Lex/ModuleMap.cpp<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_lib_Lex_ModuleMap.cpp-3Frev-3D345803-26r1-3D345802-26r2-3D345803-26view-3Ddiff&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=fuhDqKU4xiQGQizq6Oszj5RJTGnnRK6S35y0Pk_bRcg&s=nNcoGXKyPGb6zXQpXy0g-2NVm65eDiskYntWuXgkrmQ&e=" target="_blank">
https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_lib_Lex_ModuleMap.cpp-3Frev-3D345803-26r1-3D345802-26r2-3D345803-26view-3Ddiff&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=fuhDqKU4xiQGQizq6Oszj5RJTGnnRK6S35y0Pk_bRcg&s=nNcoGXKyPGb6zXQpXy0g-2NVm65eDiskYntWuXgkrmQ&e=</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">==============================================================================<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">--- cfe/trunk/lib/Lex/ModuleMap.cpp (original)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+++ cfe/trunk/lib/Lex/ModuleMap.cpp Wed Oct 31 17:46:54 2018<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">@@ -523,7 +523,7 @@ void ModuleMap::diagnoseHeaderInclusion(<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">   // At this point, only non-modular includes remain.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">-  if (LangOpts.ModulesStrictDeclUse) {<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+  if (RequestingModule && LangOpts.ModulesStrictDeclUse) {<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">     Diags.Report(FilenameLoc, diag::err_undeclared_use_of_module)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">         << RequestingModule->getTopLevelModule()->Name << Filename;<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">   } else if (RequestingModule && RequestingModuleIsModuleInterface &&<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">Modified: cfe/trunk/test/Driver/header-module.cpp<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_test_Driver_header-2Dmodule.cpp-3Frev-3D345803-26r1-3D345802-26r2-3D345803-26view-3Ddiff&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=fuhDqKU4xiQGQizq6Oszj5RJTGnnRK6S35y0Pk_bRcg&s=NZLaogjPrzbf0BsFHDpWA5l8cTRJDs11eDYky1EWLkg&e=" target="_blank">
https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_test_Driver_header-2Dmodule.cpp-3Frev-3D345803-26r1-3D345802-26r2-3D345803-26view-3Ddiff&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=fuhDqKU4xiQGQizq6Oszj5RJTGnnRK6S35y0Pk_bRcg&s=NZLaogjPrzbf0BsFHDpWA5l8cTRJDs11eDYky1EWLkg&e=</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">==============================================================================<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">--- cfe/trunk/test/Driver/header-module.cpp (original)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+++ cfe/trunk/test/Driver/header-module.cpp Wed Oct 31 17:46:54 2018<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">@@ -11,3 +11,14 @@<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">// CHECK-PRECOMPILE-SAME: header1.h<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">// CHECK-PRECOMPILE-SAME: header2.h<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">// CHECK-PRECOMPILE-SAME: header3.h<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+//<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+// RUN: %clang -fmodules-ts -fmodule-name=foobar -x c++-header -fsyntax-only %S/Inputs/header1.h %S/Inputs/header2.h %S/Inputs/header3.h -v 2>&1 | FileCheck %s --check-prefix=CHECK-SYNTAX-ONLY<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+// CHECK-SYNTAX-ONLY: -cc1 {{.*}} -fsyntax-only<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+// CHECK-SYNTAX-ONLY-SAME: -fmodules-ts<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+// CHECK-SYNTAX-ONLY-SAME: -fno-implicit-modules<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+// CHECK-SYNTAX-ONLY-SAME: -fmodule-name=foobar<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+// CHECK-SYNTAX-ONLY-NOT: -o{{ }}<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+// CHECK-SYNTAX-ONLY-SAME: -x c++<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+// CHECK-SYNTAX-ONLY-SAME: header1.h<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+// CHECK-SYNTAX-ONLY-SAME: header2.h<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+// CHECK-SYNTAX-ONLY-SAME: header3.h<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">Added: cfe/trunk/test/Modules/strict-decluse-headers.cpp<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_test_Modules_strict-2Ddecluse-2Dheaders.cpp-3Frev-3D345803-26view-3Dauto&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=fuhDqKU4xiQGQizq6Oszj5RJTGnnRK6S35y0Pk_bRcg&s=J0oYrXB66AueyeEEv8WPnwoGPl1lemvbwRTcoLhC5wA&e=" target="_blank">
https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_test_Modules_strict-2Ddecluse-2Dheaders.cpp-3Frev-3D345803-26view-3Dauto&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=fuhDqKU4xiQGQizq6Oszj5RJTGnnRK6S35y0Pk_bRcg&s=J0oYrXB66AueyeEEv8WPnwoGPl1lemvbwRTcoLhC5wA&e=</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">==============================================================================<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">--- cfe/trunk/test/Modules/strict-decluse-headers.cpp (added)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+++ cfe/trunk/test/Modules/strict-decluse-headers.cpp Wed Oct 31 17:46:54 2018<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">@@ -0,0 +1,17 @@<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+// RUN: rm -rf %t<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+// RUN: mkdir %t<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+// RUN: touch %t/foo.h<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+// RUN: echo '#include "foo.h"' > %t/bar.h<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+// RUN: touch %t/baz.h<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+// RUN: echo 'module X { header "bar.h" header "baz.h" }' > %t/map<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+//<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+// RUN: not %clang_cc1 -fsyntax-only -fmodules -fmodule-map-file=%t/map -I%t -fmodules-strict-decluse -fmodule-name=X -x c++ %t/bar.h %t/baz.h 2>&1 | FileCheck %s<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+// RUN: not %clang_cc1 -fsyntax-only -fmodules -fmodule-map-file=%t/map -I%t -fmodules-strict-decluse -fmodule-name=X -x c++ %t/baz.h %t/bar.h 2>&1 | FileCheck %s<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+//<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+// Don't crash on this: (FIXME: we should produce an error that the specified module name is not known)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+// RUN: %clang_cc1 -fsyntax-only -fmodules -I%t -fmodules-strict-decluse -fmodule-name=X -x c++ %t/baz.h %t/bar.h<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+//<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+// Don't crash on this: (FIXME: we should produce an error that the specified file is not part of the specified module)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+// RUN: %clang_cc1 -fsyntax-only -fmodules -fmodule-map-file=%t/map -I%t -fmodules-strict-decluse -fmodule-name=X -x c++ %t/foo.h<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+//<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">+// CHECK: module X does not depend on a module exporting 'foo.h'<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">_______________________________________________<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in">cfe-commits mailing list<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in"><a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in"><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_cfe-2Dcommits&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=fuhDqKU4xiQGQizq6Oszj5RJTGnnRK6S35y0Pk_bRcg&s=9N-FCRVsXGX1zREUCH5S_6grC4c09So-ZYXshtWepWI&e=" target="_blank">https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_cfe-2Dcommits&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=fuhDqKU4xiQGQizq6Oszj5RJTGnnRK6S35y0Pk_bRcg&s=9N-FCRVsXGX1zREUCH5S_6grC4c09So-ZYXshtWepWI&e=</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:0.5in"><u></u> <u></u></p>
</div>
</div>
</div>

_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</blockquote></div></div></div>