Author: dblaikie Date: Thu Nov 8 12:47:30 2018 New Revision: 346439 URL: http://llvm.org/viewvc/llvm-project?rev=346439&view=rev Log: [Frontend/Modules] Show diagnostics on prebuilt module configuration mismatch too
The current version only emits the below error for a module (attempted to be loaded) from the `prebuilt-module-path`: ``` error: module file blabla.pcm cannot be loaded due to a configuration mismatch with the current compilation [-Wmodule-file-config-mismatch] ``` With this change, if the prebuilt module is used, we allow the proper diagnostic behind the configuration mismatch to be shown. ``` error: POSIX thread support was disabled in PCH file but is currently enabled error: module file blabla.pcm cannot be loaded due to a configuration mismatch with the current compilation [-Wmodule-file-config-mismatch] ``` (A few lines later an error is emitted anyways, so there is no reason not to complain for configuration mismatches if a config mismatch is found and kills the build.) Reviewed By: dblaikie Tags: #clang Differential Revision: https://reviews.llvm.org/D53334 Added: cfe/trunk/test/Modules/mismatch-diagnostics.cpp Modified: cfe/trunk/lib/Frontend/CompilerInstance.cpp Modified: cfe/trunk/lib/Frontend/CompilerInstance.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CompilerInstance.cpp?rev=346439&r1=346438&r2=346439&view=diff ============================================================================== --- cfe/trunk/lib/Frontend/CompilerInstance.cpp (original) +++ cfe/trunk/lib/Frontend/CompilerInstance.cpp Thu Nov 8 12:47:30 2018 @@ -1727,7 +1727,9 @@ CompilerInstance::loadModule(SourceLocat // module cache, we don't know how to rebuild modules. unsigned ARRFlags = Source == ModuleCache ? ASTReader::ARR_OutOfDate | ASTReader::ARR_Missing : - ASTReader::ARR_ConfigurationMismatch; + Source == PrebuiltModulePath ? + 0 : + ASTReader::ARR_ConfigurationMismatch; switch (ModuleManager->ReadAST(ModuleFileName, Source == PrebuiltModulePath ? serialization::MK_PrebuiltModule Added: cfe/trunk/test/Modules/mismatch-diagnostics.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/mismatch-diagnostics.cpp?rev=346439&view=auto ============================================================================== --- cfe/trunk/test/Modules/mismatch-diagnostics.cpp (added) +++ cfe/trunk/test/Modules/mismatch-diagnostics.cpp Thu Nov 8 12:47:30 2018 @@ -0,0 +1,22 @@ +// RUN: rm -rf %t +// RUN: mkdir -p %t/prebuilt_modules +// +// RUN: %clang_cc1 -triple %itanium_abi_triple \ +// RUN: -fmodules-ts -fprebuilt-module-path=%t/prebuilt-modules \ +// RUN: -emit-module-interface -pthread -DBUILD_MODULE \ +// RUN: %s -o %t/prebuilt_modules/mismatching_module.pcm +// +// RUN: not %clang_cc1 -triple %itanium_abi_triple -fmodules-ts \ +// RUN: -fprebuilt-module-path=%t/prebuilt_modules -DCHECK_MISMATCH \ +// RUN: %s 2>&1 | FileCheck %s + +#ifdef BUILD_MODULE +export module mismatching_module; +#endif + +#ifdef CHECK_MISMATCH +import mismatching_module; +// CHECK: error: POSIX thread support was enabled in PCH file but is currently disabled +// CHECK-NEXT: module file {{.*}}/mismatching_module.pcm cannot be loaded due to a configuration mismatch with the current compilation +#endif + _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits