From 1d5bee47d5879434378590c0b9ec3cfb8b257212 Mon Sep 17 00:00:00 2001 From: Konrad Kleine Date: Mon, 15 Feb 2021 10:29:04 +0100 Subject: [PATCH] Remove no longer applied patch files --- ...ned-behaviour-in-RawComment-getForma.patch | 47 --------- ...mark-diagnostics-codegen-Fix-PR44896.patch | 99 ------------------- 2 files changed, 146 deletions(-) delete mode 100644 0001-clang-fix-undefined-behaviour-in-RawComment-getForma.patch delete mode 100644 0001-remark-diagnostics-codegen-Fix-PR44896.patch diff --git a/0001-clang-fix-undefined-behaviour-in-RawComment-getForma.patch b/0001-clang-fix-undefined-behaviour-in-RawComment-getForma.patch deleted file mode 100644 index ccdb423..0000000 --- a/0001-clang-fix-undefined-behaviour-in-RawComment-getForma.patch +++ /dev/null @@ -1,47 +0,0 @@ -From ad7211df6f257e39da2e5a11b2456b4488f32a1e Mon Sep 17 00:00:00 2001 -From: Oliver Bruns -Date: Mon, 6 Apr 2020 10:38:30 +0200 -Subject: [PATCH] [clang] fix undefined behaviour in - RawComment::getFormattedText() - -Summary: -Calling `back()` and `pop_back()` on the empty string is undefined -behavior [1,2]. - -The issue manifested itself as an uncaught `std::out_of_range` exception -when running `clangd` compiled on RHEL7 using devtoolset-9. - -[1] https://en.cppreference.com/w/cpp/string/basic_string/back -[2] https://en.cppreference.com/w/cpp/string/basic_string/pop_back - -Fixes: 1ff7c32fc91c607b690d4bb9cf42f406be8dde68 - -Reviewers: teemperor, ioeric, cfe-commits - -Reviewed By: teemperor - -Subscribers: ilya-biryukov, kadircet, usaxena95 - -Tags: #clang - -Differential Revision: https://reviews.llvm.org/D77468 ---- - clang/lib/AST/RawCommentList.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/clang/lib/AST/RawCommentList.cpp b/clang/lib/AST/RawCommentList.cpp -index 8552b4fcd2b..a8d15036cab 100644 ---- a/clang/lib/AST/RawCommentList.cpp -+++ b/clang/lib/AST/RawCommentList.cpp -@@ -431,7 +431,7 @@ std::string RawComment::getFormattedText(const SourceManager &SourceMgr, - }; - - auto DropTrailingNewLines = [](std::string &Str) { -- while (Str.back() == '\n') -+ while (!Str.empty() && Str.back() == '\n') - Str.pop_back(); - }; - --- -2.25.2 - diff --git a/0001-remark-diagnostics-codegen-Fix-PR44896.patch b/0001-remark-diagnostics-codegen-Fix-PR44896.patch deleted file mode 100644 index 6bac83e..0000000 --- a/0001-remark-diagnostics-codegen-Fix-PR44896.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 11857d49948b845dcfd7c7f78595095e3add012d Mon Sep 17 00:00:00 2001 -From: Rong Xu -Date: Tue, 25 Feb 2020 08:04:01 -0800 -Subject: [PATCH] [remark][diagnostics] [codegen] Fix PR44896 - -This patch fixes PR44896. For IR input files, option fdiscard-value-names -should be ignored as we need named values in loadModule(). -Commit 60d3947922 sets this option after loadModule() where valued names -already created. This creates an inconsistent state in setNameImpl() -that leads to a seg fault. -This patch forces fdiscard-value-names to be false for IR input files. - -This patch also emits a warning of "ignoring -fdiscard-value-names" if -option fdiscard-value-names is explictly enabled in the commandline for -IR input files. - -Differential Revision: https://reviews.llvm.org/D74878 ---- - clang/include/clang/Basic/DiagnosticDriverKinds.td | 3 +++ - clang/lib/CodeGen/CodeGenAction.cpp | 3 +++ - clang/lib/Driver/ToolChains/Clang.cpp | 10 +++++++++- - clang/test/CodeGen/PR44896.ll | 15 +++++++++++++++ - 4 files changed, 30 insertions(+), 1 deletion(-) - create mode 100644 clang/test/CodeGen/PR44896.ll - -diff --git a/clang/include/clang/Basic/DiagnosticDriverKinds.td b/clang/include/clang/Basic/DiagnosticDriverKinds.td -index ecd871e..48ece91 100644 ---- a/clang/include/clang/Basic/DiagnosticDriverKinds.td -+++ b/clang/include/clang/Basic/DiagnosticDriverKinds.td -@@ -271,6 +271,9 @@ def warn_drv_unsupported_debug_info_opt_for_target : Warning< - InGroup; - def warn_c_kext : Warning< - "ignoring -fapple-kext which is valid for C++ and Objective-C++ only">; -+def warn_ignoring_fdiscard_for_bitcode : Warning< -+ "ignoring -fdiscard-value-names for LLVM Bitcode">, -+ InGroup; - def warn_drv_input_file_unused : Warning< - "%0: '%1' input unused%select{ when '%3' is present|}2">, - InGroup; -diff --git a/clang/lib/CodeGen/CodeGenAction.cpp b/clang/lib/CodeGen/CodeGenAction.cpp -index 5ebc34c..81946b1 100644 ---- a/clang/lib/CodeGen/CodeGenAction.cpp -+++ b/clang/lib/CodeGen/CodeGenAction.cpp -@@ -1146,6 +1146,9 @@ void CodeGenAction::ExecuteAction() { - CI.getTargetOpts(), CI.getLangOpts(), - CI.getFrontendOpts().ShowTimers, - std::move(LinkModules), *VMContext, nullptr); -+ // PR44896: Force DiscardValueNames as false. DiscardValueNames cannot be -+ // true here because the valued names are needed for reading textual IR. -+ Ctx.setDiscardValueNames(false); - Ctx.setDiagnosticHandler( - std::make_unique(CodeGenOpts, &Result)); - -diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp -index 19a23c9..d387a1d 100644 ---- a/clang/lib/Driver/ToolChains/Clang.cpp -+++ b/clang/lib/Driver/ToolChains/Clang.cpp -@@ -4332,8 +4332,16 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, - - // Discard value names in assert builds unless otherwise specified. - if (Args.hasFlag(options::OPT_fdiscard_value_names, -- options::OPT_fno_discard_value_names, !IsAssertBuild)) -+ options::OPT_fno_discard_value_names, !IsAssertBuild)) { -+ if (Args.hasArg(options::OPT_fdiscard_value_names) && -+ (std::any_of(Inputs.begin(), Inputs.end(), -+ [](const clang::driver::InputInfo &II) { -+ return types::isLLVMIR(II.getType()); -+ }))) { -+ D.Diag(diag::warn_ignoring_fdiscard_for_bitcode); -+ } - CmdArgs.push_back("-discard-value-names"); -+ } - - // Set the main file name, so that debug info works even with - // -save-temps. -diff --git a/clang/test/CodeGen/PR44896.ll b/clang/test/CodeGen/PR44896.ll -new file mode 100644 -index 0000000..a4d3445 ---- /dev/null -+++ b/clang/test/CodeGen/PR44896.ll -@@ -0,0 +1,15 @@ -+; RUN: %clang -fdiscard-value-names -S %s -o /dev/null 2>&1 | FileCheck --check-prefix=WARNING %s -+; RUN: %clang -S %s -o /dev/null 2>&1 | FileCheck --check-prefix=NOWARNING %s -+; RUN: %clang_cc1 -S -emit-llvm %s -discard-value-names -o /dev/null -+; PR 44896 -+ -+; WARNING: ignoring -fdiscard-value-names for LLVM Bitcode -+; NOWARNING-NOT: ignoring -fdiscard-value-names for LLVM Bitcode -+ -+target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -+target triple = "x86_64--linux-gnu" -+ -+define linkonce i8* @b(i8* %a) { -+ ret i8* %a -+} -+ --- -1.8.3.1 -