https://github.com/ChuanqiXu9 updated https://github.com/llvm/llvm-project/pull/115416
>From 168d155cf6662b5db8cd4f84a51633581d8a545e Mon Sep 17 00:00:00 2001 From: Chuanqi Xu <yedeng...@linux.alibaba.com> Date: Fri, 8 Nov 2024 10:56:44 +0800 Subject: [PATCH] [Serialization] Downgrade inconsistent flags from erros to warnings --- clang/docs/ReleaseNotes.rst | 2 + clang/include/clang/Basic/DiagnosticGroups.td | 1 + .../Basic/DiagnosticSerializationKinds.td | 10 ++-- clang/lib/Serialization/ASTReader.cpp | 39 +++++-------- .../Modules/explicit-build-missing-files.cpp | 2 +- clang/test/Modules/load_failure.c | 6 +- clang/test/Modules/mismatch-diagnostics.cpp | 56 +++++++++++++------ clang/test/Modules/module-feature.m | 6 +- clang/test/Modules/pr62359.cppm | 9 ++- .../test/Modules/prebuilt-implicit-modules.m | 2 +- clang/test/PCH/arc.m | 6 +- clang/test/PCH/no-validate-pch.cl | 2 +- clang/test/PCH/pch-dir.c | 10 ++-- 13 files changed, 86 insertions(+), 65 deletions(-) diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 6c40e48e2f49b3..30ae869d70c0fb 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -590,6 +590,8 @@ Improvements to Clang's diagnostics - Fixed a false negative ``-Wunused-private-field`` diagnostic when a defaulted comparison operator is defined out of class (#GH116961). +- Clang now downgrades the inconsistent language options between modules to warnings instead of errors. + Improvements to Clang's time-trace ---------------------------------- diff --git a/clang/include/clang/Basic/DiagnosticGroups.td b/clang/include/clang/Basic/DiagnosticGroups.td index df9bf94b5d0398..287efb38bf176e 100644 --- a/clang/include/clang/Basic/DiagnosticGroups.td +++ b/clang/include/clang/Basic/DiagnosticGroups.td @@ -557,6 +557,7 @@ def ModuleLock : DiagGroup<"module-lock">; def ModuleBuild : DiagGroup<"module-build">; def ModuleImport : DiagGroup<"module-import">; def ModuleConflict : DiagGroup<"module-conflict">; +def ModuleMismatchedOption : DiagGroup<"module-mismatched-option">; def ModuleFileExtension : DiagGroup<"module-file-extension">; def ModuleIncludeDirectiveTranslation : DiagGroup<"module-include-translation">; def RoundTripCC1Args : DiagGroup<"round-trip-cc1-args">; diff --git a/clang/include/clang/Basic/DiagnosticSerializationKinds.td b/clang/include/clang/Basic/DiagnosticSerializationKinds.td index 3914d3930bec79..4e1aff20617963 100644 --- a/clang/include/clang/Basic/DiagnosticSerializationKinds.td +++ b/clang/include/clang/Basic/DiagnosticSerializationKinds.td @@ -36,10 +36,12 @@ def err_ast_file_targetopt_feature_mismatch : Error< "%select{AST file '%1' was|current translation unit is}0 compiled with the target " "feature '%2' but the %select{current translation unit is|AST file '%1' was}0 " "not">; -def err_ast_file_langopt_mismatch : Error<"%0 was %select{disabled|enabled}1 in " - "AST file '%3' but is currently %select{disabled|enabled}2">; -def err_ast_file_langopt_value_mismatch : Error< - "%0 differs in AST file '%1' vs. current file">; +def warn_ast_file_langopt_mismatch : Warning<"%0 was %select{disabled|enabled}1 in " + "AST file '%3' but is currently %select{disabled|enabled}2">, + InGroup<ModuleMismatchedOption>; +def warn_ast_file_langopt_value_mismatch : Warning< + "%0 differs in AST file '%1' vs. current file">, + InGroup<ModuleMismatchedOption>; def err_ast_file_diagopt_mismatch : Error<"%0 is currently enabled, but was not in " "the AST file '%1'">; def err_ast_file_modulecache_mismatch : Error<"AST file '%2' was compiled with module cache " diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp index ec85fad3389a1c..de24f65f970a53 100644 --- a/clang/lib/Serialization/ASTReader.cpp +++ b/clang/lib/Serialization/ASTReader.cpp @@ -279,9 +279,7 @@ ASTReaderListener::~ASTReaderListener() = default; /// \param Diags If non-NULL, diagnostics will be emitted via this engine. /// \param AllowCompatibleDifferences If true, differences between compatible /// language options will be permitted. -/// -/// \returns true if the languagae options mis-match, false otherwise. -static bool checkLanguageOptions(const LangOptions &LangOpts, +static void checkLanguageOptions(const LangOptions &LangOpts, const LangOptions &ExistingLangOpts, StringRef ModuleFilename, DiagnosticsEngine *Diags, @@ -290,30 +288,27 @@ static bool checkLanguageOptions(const LangOptions &LangOpts, if (ExistingLangOpts.Name != LangOpts.Name) { \ if (Diags) { \ if (Bits == 1) \ - Diags->Report(diag::err_ast_file_langopt_mismatch) \ + Diags->Report(diag::warn_ast_file_langopt_mismatch) \ << Description << LangOpts.Name << ExistingLangOpts.Name \ << ModuleFilename; \ else \ - Diags->Report(diag::err_ast_file_langopt_value_mismatch) \ + Diags->Report(diag::warn_ast_file_langopt_value_mismatch) \ << Description << ModuleFilename; \ } \ - return true; \ } #define VALUE_LANGOPT(Name, Bits, Default, Description) \ if (ExistingLangOpts.Name != LangOpts.Name) { \ if (Diags) \ - Diags->Report(diag::err_ast_file_langopt_value_mismatch) \ + Diags->Report(diag::warn_ast_file_langopt_value_mismatch) \ << Description << ModuleFilename; \ - return true; \ } #define ENUM_LANGOPT(Name, Type, Bits, Default, Description) \ if (ExistingLangOpts.get##Name() != LangOpts.get##Name()) { \ if (Diags) \ - Diags->Report(diag::err_ast_file_langopt_value_mismatch) \ + Diags->Report(diag::warn_ast_file_langopt_value_mismatch) \ << Description << ModuleFilename; \ - return true; \ } #define COMPATIBLE_LANGOPT(Name, Bits, Default, Description) \ @@ -335,24 +330,21 @@ static bool checkLanguageOptions(const LangOptions &LangOpts, if (ExistingLangOpts.ModuleFeatures != LangOpts.ModuleFeatures) { if (Diags) - Diags->Report(diag::err_ast_file_langopt_value_mismatch) + Diags->Report(diag::warn_ast_file_langopt_value_mismatch) << "module features" << ModuleFilename; - return true; } if (ExistingLangOpts.ObjCRuntime != LangOpts.ObjCRuntime) { if (Diags) - Diags->Report(diag::err_ast_file_langopt_value_mismatch) + Diags->Report(diag::warn_ast_file_langopt_value_mismatch) << "target Objective-C runtime" << ModuleFilename; - return true; } if (ExistingLangOpts.CommentOpts.BlockCommandNames != LangOpts.CommentOpts.BlockCommandNames) { if (Diags) - Diags->Report(diag::err_ast_file_langopt_value_mismatch) + Diags->Report(diag::warn_ast_file_langopt_value_mismatch) << "block command names" << ModuleFilename; - return true; } // Sanitizer feature mismatches are treated as compatible differences. If @@ -378,11 +370,8 @@ static bool checkLanguageOptions(const LangOptions &LangOpts, } #include "clang/Basic/Sanitizers.def" } - return true; } } - - return false; } /// Compare the given set of target options against an existing set of @@ -459,9 +448,10 @@ bool PCHValidator::ReadLanguageOptions(const LangOptions &LangOpts, StringRef ModuleFilename, bool Complain, bool AllowCompatibleDifferences) { const LangOptions &ExistingLangOpts = PP.getLangOpts(); - return checkLanguageOptions(LangOpts, ExistingLangOpts, ModuleFilename, - Complain ? &Reader.Diags : nullptr, - AllowCompatibleDifferences); + checkLanguageOptions(LangOpts, ExistingLangOpts, ModuleFilename, + Complain ? &Reader.Diags : nullptr, + AllowCompatibleDifferences); + return false; } bool PCHValidator::ReadTargetOptions(const TargetOptions &TargetOpts, @@ -5398,8 +5388,9 @@ namespace { bool ReadLanguageOptions(const LangOptions &LangOpts, StringRef ModuleFilename, bool Complain, bool AllowCompatibleDifferences) override { - return checkLanguageOptions(ExistingLangOpts, LangOpts, ModuleFilename, - nullptr, AllowCompatibleDifferences); + checkLanguageOptions(ExistingLangOpts, LangOpts, ModuleFilename, nullptr, + AllowCompatibleDifferences); + return false; } bool ReadTargetOptions(const TargetOptions &TargetOpts, diff --git a/clang/test/Modules/explicit-build-missing-files.cpp b/clang/test/Modules/explicit-build-missing-files.cpp index 3ea881d34c6b28..4682ede5e08089 100644 --- a/clang/test/Modules/explicit-build-missing-files.cpp +++ b/clang/test/Modules/explicit-build-missing-files.cpp @@ -33,7 +33,7 @@ // RUN: %clang_cc1 -fmodules -I %t -fmodule-file=%t/b.pcm %s // RUN: not %clang_cc1 -fmodules -I %t -fmodule-file=%t/a.pcm %s -DERRORS 2>&1 | FileCheck %s --check-prefix=MISSING-B // RUN: %clang_cc1 -fmodules -I %t -fmodule-file=%t/a.pcm -fmodule-map-file=%t/modulemap.moved %s -// RUN: not %clang_cc1 -fmodules -I %t -fmodule-file=%t/a.pcm -fmodule-map-file=%t/modulemap.moved -std=c++1z %s +// RUN: %clang_cc1 -fmodules -I %t -fmodule-file=%t/a.pcm -fmodule-map-file=%t/modulemap.moved -std=c++1z %s // RUN: %clang_cc1 -fmodules -I %t -fmodule-file=%t/a.pcm -fmodule-map-file=%t/modulemap.moved -std=c++1z -Wno-module-file-config-mismatch %s -Db=a // RUN: rm %t/a.h // RUN: %clang_cc1 -fmodules -I %t -fmodule-file=%t/a.pcm %s -verify diff --git a/clang/test/Modules/load_failure.c b/clang/test/Modules/load_failure.c index 662b39b6f1874f..bc0abb46bdc2bc 100644 --- a/clang/test/Modules/load_failure.c +++ b/clang/test/Modules/load_failure.c @@ -11,11 +11,11 @@ // RUN: not %clang_cc1 -fmodules -fimplicit-module-maps -x objective-c -fmodules-cache-path=%t -I %S/Inputs -fdisable-module-hash %s -DNONEXISTENT 2>&1 | FileCheck -check-prefix=CHECK-NONEXISTENT %s // CHECK-NONEXISTENT: load_failure.c:2:9: fatal error: module 'load_nonexistent' not found -// RUN: not %clang_cc1 -fmodules -fimplicit-module-maps -x objective-c -fmodules-cache-path=%t -I %S/Inputs -fdisable-module-hash %s -DFAILURE 2> %t.out -// RUN: FileCheck -check-prefix=CHECK-FAILURE %s < %t.out +// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -x objective-c -fmodules-cache-path=%t -I %S/Inputs -fdisable-module-hash %s -DFAILURE 2> %t.out +// RUN: FileCheck -check-prefix=CHECK-WARN %s < %t.out // FIXME: Clean up diagnostic text below and give it a location -// CHECK-FAILURE: error: C99 was disabled in AST file '{{.*}}load_failure.pcm' but is currently enabled +// CHECK-WARN: warning: C99 was disabled in AST file '{{.*}}load_failure.pcm' but is currently enabled // FIXME: When we have a syntax for modules in C, use that. diff --git a/clang/test/Modules/mismatch-diagnostics.cpp b/clang/test/Modules/mismatch-diagnostics.cpp index dffd4b46a678e5..745d6ee802f8f9 100644 --- a/clang/test/Modules/mismatch-diagnostics.cpp +++ b/clang/test/Modules/mismatch-diagnostics.cpp @@ -3,31 +3,55 @@ // RUN: split-file %s %t // RUN: mkdir -p %t/prebuilt_modules // -// RUN: %clang_cc1 -triple %itanium_abi_triple \ -// RUN: -std=c++20 -fprebuilt-module-path=%t/prebuilt-modules \ -// RUN: -emit-module-interface -pthread -DBUILD_MODULE \ -// RUN: %t/mismatching_module.cppm -o \ +// RUN: %clang_cc1 -triple %itanium_abi_triple \ +// RUN: -std=c++20 -fprebuilt-module-path=%t/prebuilt-modules \ +// RUN: -emit-module-interface -pthread -DBUILD_MODULE \ +// RUN: %t/mismatching_module.cppm -o \ // RUN: %t/prebuilt_modules/mismatching_module.pcm // -// RUN: not %clang_cc1 -triple %itanium_abi_triple -std=c++20 \ -// RUN: -fprebuilt-module-path=%t/prebuilt_modules -DCHECK_MISMATCH \ -// RUN: %t/use.cpp 2>&1 | FileCheck %s +// RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++20 \ +// RUN: -fprebuilt-module-path=%t/prebuilt_modules -DCHECK_MISMATCH \ +// RUN: %t/use.cpp 2>&1 | FileCheck %t/use.cpp // Test again with reduced BMI. -// RUN: %clang_cc1 -triple %itanium_abi_triple \ -// RUN: -std=c++20 -fprebuilt-module-path=%t/prebuilt-modules \ -// RUN: -emit-reduced-module-interface -pthread -DBUILD_MODULE \ -// RUN: %t/mismatching_module.cppm -o \ +// RUN: %clang_cc1 -triple %itanium_abi_triple \ +// RUN: -std=c++20 -fprebuilt-module-path=%t/prebuilt-modules \ +// RUN: -emit-reduced-module-interface -pthread -DBUILD_MODULE \ +// RUN: %t/mismatching_module.cppm -o \ // RUN: %t/prebuilt_modules/mismatching_module.pcm // -// RUN: not %clang_cc1 -triple %itanium_abi_triple -std=c++20 \ -// RUN: -fprebuilt-module-path=%t/prebuilt_modules -DCHECK_MISMATCH \ -// RUN: %t/use.cpp 2>&1 | FileCheck %s +// RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++20 \ +// RUN: -fprebuilt-module-path=%t/prebuilt_modules -DCHECK_MISMATCH \ +// RUN: %t/use.cpp 2>&1 | FileCheck %t/use.cpp +// +// RUN: %clang_cc1 -triple %itanium_abi_triple \ +// RUN: -std=c++20 -fprebuilt-module-path=%t/prebuilt-modules \ +// RUN: -emit-module-interface -pthread -DBUILD_MODULE \ +// RUN: %t/mismatching_module.cppm -o \ +// RUN: %t/prebuilt_modules/mismatching_module.pcm +// +// RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++20 \ +// RUN: -fprebuilt-module-path=%t/prebuilt_modules -DCHECK_MISMATCH \ +// RUN: -Wno-module-mismatched-option %t/use.cpp 2>&1 | FileCheck %t/use.cpp \ +// RUN: --check-prefix=NOWARN --allow-empty + +// Test again with reduced BMI. +// RUN: %clang_cc1 -triple %itanium_abi_triple \ +// RUN: -std=c++20 -fprebuilt-module-path=%t/prebuilt-modules \ +// RUN: -emit-reduced-module-interface -pthread -DBUILD_MODULE \ +// RUN: %t/mismatching_module.cppm -o \ +// RUN: %t/prebuilt_modules/mismatching_module.pcm +// +// RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++20 \ +// RUN: -fprebuilt-module-path=%t/prebuilt_modules -DCHECK_MISMATCH \ +// RUN: -Wno-module-mismatched-option %t/use.cpp 2>&1 | FileCheck %t/use.cpp \ +// RUN: --check-prefix=NOWARN --allow-empty //--- mismatching_module.cppm export module mismatching_module; //--- use.cpp import mismatching_module; -// CHECK: error: POSIX thread support was enabled in AST file '{{.*[/|\\\\]}}mismatching_module.pcm' but is currently disabled -// CHECK-NEXT: module file {{.*[/|\\\\]}}mismatching_module.pcm cannot be loaded due to a configuration mismatch with the current compilation +// CHECK: warning: POSIX thread support was enabled in AST file '{{.*[/|\\\\]}}mismatching_module.pcm' but is currently disabled + +// NOWARN-NOT: warning diff --git a/clang/test/Modules/module-feature.m b/clang/test/Modules/module-feature.m index 4926d26515f860..bbc9b0220f761c 100644 --- a/clang/test/Modules/module-feature.m +++ b/clang/test/Modules/module-feature.m @@ -6,9 +6,9 @@ // RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -fimplicit-module-maps -fmodule-feature f2 -fmodule-feature f1 -F %S/Inputs %s -Rmodule-build 2>&1 | FileCheck %s -allow-empty -check-prefix=ALREADY_BUILT // ALREADY_BUILT-NOT: building module -// Errors if we try to force the load. +// Warns if we try to force the load. // RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t.nohash -fimplicit-module-maps -fdisable-module-hash -fmodule-feature f1 -fmodule-feature f2 -F %S/Inputs %s -verify -Rmodule-build -// RUN: not %clang_cc1 -fmodules -fmodules-cache-path=%t.nohash -fimplicit-module-maps -fdisable-module-hash -fmodule-feature f2 -F %S/Inputs %s 2>&1 | FileCheck %s -check-prefix=DIFFERS -// DIFFERS: error: module features differs +// RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t.nohash -fimplicit-module-maps -fdisable-module-hash -fmodule-feature f2 -F %S/Inputs %s 2>&1 | FileCheck %s -check-prefix=DIFFERS +// DIFFERS: warning: module features differs @import Module; // expected-remark {{building module 'Module'}} expected-remark {{finished}} diff --git a/clang/test/Modules/pr62359.cppm b/clang/test/Modules/pr62359.cppm index 7d9d3eec26cca7..f459d46f378618 100644 --- a/clang/test/Modules/pr62359.cppm +++ b/clang/test/Modules/pr62359.cppm @@ -3,9 +3,9 @@ // RUN: split-file %s %t // // RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/Hello.cppm -o %t/Hello.pcm -// RUN: not %clang_cc1 -std=c++20 -fopenmp %t/use.cpp -fmodule-file=hello=%t/Hello.pcm -fsyntax-only \ +// RUN: %clang_cc1 -std=c++20 -fopenmp %t/use.cpp -fmodule-file=hello=%t/Hello.pcm -fsyntax-only \ // RUN: 2>&1 | FileCheck %t/use.cpp -// RUN: not %clang_cc1 -std=c++20 -fopenmp %t/use2.cpp -fmodule-file=hello=%t/Hello.pcm -fsyntax-only \ +// RUN: %clang_cc1 -std=c++20 -fopenmp %t/use2.cpp -fmodule-file=hello=%t/Hello.pcm -fsyntax-only \ // RUN: 2>&1 | FileCheck %t/use2.cpp // // RUN: %clang_cc1 -std=c++20 -fopenmp -emit-module-interface %t/Hello.cppm -o %t/Hello.pcm @@ -18,9 +18,9 @@ // RUN: split-file %s %t // // RUN: %clang_cc1 -std=c++20 -emit-reduced-module-interface %t/Hello.cppm -o %t/Hello.pcm -// RUN: not %clang_cc1 -std=c++20 -fopenmp %t/use.cpp -fmodule-file=hello=%t/Hello.pcm -fsyntax-only \ +// RUN: %clang_cc1 -std=c++20 -fopenmp %t/use.cpp -fmodule-file=hello=%t/Hello.pcm -fsyntax-only \ // RUN: 2>&1 | FileCheck %t/use.cpp -// RUN: not %clang_cc1 -std=c++20 -fopenmp %t/use2.cpp -fmodule-file=hello=%t/Hello.pcm -fsyntax-only \ +// RUN: %clang_cc1 -std=c++20 -fopenmp %t/use2.cpp -fmodule-file=hello=%t/Hello.pcm -fsyntax-only \ // RUN: 2>&1 | FileCheck %t/use2.cpp // // RUN: %clang_cc1 -std=c++20 -fopenmp -emit-reduced-module-interface %t/Hello.cppm -o %t/Hello.pcm @@ -56,4 +56,3 @@ int use2() { } // CHECK: OpenMP{{.*}}differs in AST file '{{.*}}Hello.pcm' vs. current file -// CHECK: use of undeclared identifier 'pragma' diff --git a/clang/test/Modules/prebuilt-implicit-modules.m b/clang/test/Modules/prebuilt-implicit-modules.m index dc4fb55cb17a55..1bae214eb901f7 100644 --- a/clang/test/Modules/prebuilt-implicit-modules.m +++ b/clang/test/Modules/prebuilt-implicit-modules.m @@ -25,7 +25,7 @@ // RUN: mkdir -p %t2 // RUN: %clang_cc1 -x objective-c -fmodules %S/Inputs/prebuilt-implicit-module/module.modulemap -emit-module -fmodule-name=module_a -fmodules-cache-path=%t // RUN: %clang_cc1 -x objective-c -fmodules %S/Inputs/prebuilt-implicit-module/module.modulemap -emit-module -fmodule-name=module_a -o %t/module_a.pcm -fno-signed-char -// RUN: not %clang_cc1 -x objective-c %s -I%S/Inputs/prebuilt-implicit-module -fmodules -fmodule-map-file=%S/Inputs/prebuilt-implicit-module/module.modulemap -fprebuilt-implicit-modules -fprebuilt-module-path=%t -fmodules-cache-path=%t2 +// RUN: %clang_cc1 -x objective-c %s -I%S/Inputs/prebuilt-implicit-module -fmodules -fmodule-map-file=%S/Inputs/prebuilt-implicit-module/module.modulemap -fprebuilt-implicit-modules -fprebuilt-module-path=%t -fmodules-cache-path=%t2 // RUN: find %t2 -name "module_a*.pcm" | not grep module_a // expected-no-diagnostics diff --git a/clang/test/PCH/arc.m b/clang/test/PCH/arc.m index e4ad71a469b956..d714512b48d7d7 100644 --- a/clang/test/PCH/arc.m +++ b/clang/test/PCH/arc.m @@ -6,10 +6,10 @@ // RUN: %clang_cc1 -emit-pch -fblocks -triple x86_64-apple-darwin11 -fobjc-arc -x objective-c-header -o %t %S/Inputs/arc.h // RUN: %clang_cc1 -fblocks -triple x86_64-apple-darwin11 -fobjc-arc -include-pch %t -emit-llvm-only %s -// Test error when pch's -fobjc-arc state is different. -// RUN: not %clang_cc1 -fblocks -triple x86_64-apple-darwin11 -include-pch %t -emit-llvm-only %s 2>&1 | FileCheck -check-prefix=CHECK-ERR1 %s +// Test warning when pch's -fobjc-arc state is different. +// RUN: %clang_cc1 -fblocks -triple x86_64-apple-darwin11 -include-pch %t -emit-llvm-only %s 2>&1 | FileCheck -check-prefix=CHECK-ERR1 %s // RUN: %clang_cc1 -emit-pch -fblocks -triple x86_64-apple-darwin11 -x objective-c-header -o %t %S/Inputs/arc.h -// RUN: not %clang_cc1 -fblocks -triple x86_64-apple-darwin11 -fobjc-arc -include-pch %t -emit-llvm-only %s 2>&1 | FileCheck -check-prefix=CHECK-ERR2 %s +// RUN: %clang_cc1 -fblocks -triple x86_64-apple-darwin11 -fobjc-arc -include-pch %t -emit-llvm-only %s 2>&1 | FileCheck -check-prefix=CHECK-ERR2 %s array0 a0; array1 a1; diff --git a/clang/test/PCH/no-validate-pch.cl b/clang/test/PCH/no-validate-pch.cl index aa228ee2052192..c5a500103091f6 100644 --- a/clang/test/PCH/no-validate-pch.cl +++ b/clang/test/PCH/no-validate-pch.cl @@ -16,7 +16,7 @@ // CHECK: note: previous definition is here // CHECK: #define X 4 -// CHECK-VAL: error: __OPTIMIZE__ predefined macro was enabled in AST file '{{.*}}' but is currently disabled +// CHECK-VAL: warning: __OPTIMIZE__ predefined macro was enabled in AST file '{{.*}}' but is currently disabled // CHECK-VAL: error: definition of macro 'X' differs between the AST file '{{.*}}' ('4') and the command line ('5') void test(void) { diff --git a/clang/test/PCH/pch-dir.c b/clang/test/PCH/pch-dir.c index fd7d24f9f83ff4..e67d28b1e8567e 100644 --- a/clang/test/PCH/pch-dir.c +++ b/clang/test/PCH/pch-dir.c @@ -11,11 +11,11 @@ // RUN: %clang -x c++ -include %t.h -std=c++98 -fsyntax-only %s -Xclang -print-stats 2> %t.cpplog // RUN: FileCheck -check-prefix=CHECK-CPP %s < %t.cpplog -// RUN: not %clang -x c++ -std=c++11 -include %t.h -fsyntax-only %s 2> %t.cpp11log -// RUN: FileCheck -check-prefix=CHECK-NO-SUITABLE %s < %t.cpp11log +// RUN: %clang -x c++ -std=c++11 -include %t.h -fsyntax-only %s 2> %t.cpp11log +// RUN: FileCheck %s --check-prefix=CHECK-OPT-DIFF < %t.cpp11log -// RUN: not %clang -include %t.h -fsyntax-only %s 2> %t.missinglog2 -// RUN: FileCheck -check-prefix=CHECK-NO-SUITABLE %s < %t.missinglog2 +// RUN: %clang -include %t.h -fsyntax-only %s 2> %t.missinglog2 +// RUN: FileCheck --check-prefix=CHECK-OPT-DIFF %s < %t.missinglog2 // RUN: not %clang -include %t.h -DFOO=foo -DBAR=bar -fsyntax-only %s 2> %t.missinglog2 // RUN: FileCheck -check-prefix=CHECK-NO-SUITABLE %s < %t.missinglog2 @@ -41,6 +41,8 @@ int get(void) { #endif } +// CHECK-OPT-DIFF: warning: {{.*}} was disabled in AST file{{.*}} but is currently enabled + // CHECK-NO-SUITABLE: no suitable precompiled header file found in directory // CHECK-IGNORED-DIR: precompiled header directory '{{.*}}pch-dir.c.tmp.x.h.gch' was ignored because it contains no clang PCH files _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits