[PATCH] D144565: dwp check overflow

zhuna via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 9 05:38:56 PST 2023


zhuna8616 updated this revision to Diff 503739.
zhuna8616 added a comment.

move warning option to dwp dayer && add check for invalid sequence


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D144565/new/

https://reviews.llvm.org/D144565

Files:
  llvm/include/llvm/MC/MCTargetOptions.h
  llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h
  llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
  llvm/test/tools/llvm-dwp/X86/overflow-warning.test
  llvm/tools/llvm-dwp/llvm-dwp.cpp


Index: llvm/tools/llvm-dwp/llvm-dwp.cpp
===================================================================
--- llvm/tools/llvm-dwp/llvm-dwp.cpp
+++ llvm/tools/llvm-dwp/llvm-dwp.cpp
@@ -59,6 +59,11 @@
     cl::desc("Specify the executable/library files to get the list of *.dwo from"),
     cl::value_desc("filename"), cl::cat(DwpCategory));
 
+static cl::opt<bool> ContinueOnCuIndexOverflow(
+"continue-on-cu-index-overflow",
+cl::desc("This turns an error when offset for .debug_*.dwo sections "
+         "overfolws into a warning."), cl::cat(DwpCategory));
+
 static cl::opt<std::string> OutputFilename(cl::Required, "o",
                                            cl::desc("Specify the output file."),
                                            cl::value_desc("filename"),
@@ -800,7 +805,7 @@
                         std::make_move_iterator(DWOs->end()));
   }
 
-  if (auto Err = write(*MS, DWOFilenames, MCOptions.MCWarnOverflow)) {
+  if (auto Err = write(*MS, DWOFilenames, ContinueOnCuIndexOverflow)) {
     logAllUnhandledErrors(std::move(Err), WithColor::error());
     return 1;
   }
Index: llvm/test/tools/llvm-dwp/X86/overflow-warning.test
===================================================================
--- llvm/test/tools/llvm-dwp/X86/overflow-warning.test
+++ llvm/test/tools/llvm-dwp/X86/overflow-warning.test
@@ -1,4 +1,6 @@
 RUN: llvm-mc --triple=x86_64-unknown-linux --filetype=obj --split-dwarf-file=hello.dwo -dwarf-version=5 %p/../Inputs/overflow/hello.s -o hello.o
 RUN: llvm-mc --triple=x86_64-unknown-linux --filetype=obj --split-dwarf-file=main.dwo -dwarf-version=5 %p/../Inputs/overflow/main.s -o main.o
-RUN: llvm-dwp -e hello.o -e main.o -warn-overflow -o overflow.dwp 2>&1 | FileCheck %s
+RUN: llvm-dwp -e hello.o -e main.o -continue-on-cu-index-overflow -o overflow.dwp 2>&1 | FileCheck %s
+RUN: llvm-dwp overflow.dwp -o overflow-warned.dwp
+
 CHECK: warning: Section size overflow in debug_info.dwo
Index: llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
===================================================================
--- llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
+++ llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
@@ -42,7 +42,6 @@
 MCOPT(bool, ShowMCInst)
 MCOPT(bool, FatalWarnings)
 MCOPT(bool, NoWarn)
-MCOPT(bool, WarnOverflow)
 MCOPT(bool, NoDeprecatedWarn)
 MCOPT(std::string, ABIName)
 
@@ -87,11 +86,6 @@
                            cl::aliasopt(NoWarn));
   MCBINDOPT(NoWarn);
 
-  static cl::opt<bool> WarnOverflow(
-      "warn-overflow", cl::desc("Warn about section overflow in dwp and "
-                                "preserve the overflow behavior"));
-  MCBINDOPT(WarnOverflow);
-
   static cl::opt<bool> NoDeprecatedWarn(
       "no-deprecated-warn", cl::desc("Suppress all deprecated warnings"));
   MCBINDOPT(NoDeprecatedWarn);
@@ -115,7 +109,6 @@
   Options.ABIName = getABIName();
   Options.MCFatalWarnings = getFatalWarnings();
   Options.MCNoWarn = getNoWarn();
-  Options.MCWarnOverflow = getWarnOverflow();
   Options.MCNoDeprecatedWarn = getNoDeprecatedWarn();
   return Options;
 }
Index: llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h
===================================================================
--- llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h
+++ llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h
@@ -38,8 +38,6 @@
 
 bool getNoWarn();
 
-bool getWarnOverflow();
-
 bool getNoDeprecatedWarn();
 
 std::string getABIName();
Index: llvm/include/llvm/MC/MCTargetOptions.h
===================================================================
--- llvm/include/llvm/MC/MCTargetOptions.h
+++ llvm/include/llvm/MC/MCTargetOptions.h
@@ -43,7 +43,6 @@
   bool MCNoExecStack : 1;
   bool MCFatalWarnings : 1;
   bool MCNoWarn : 1;
-  bool MCWarnOverflow : 1;
   bool MCNoDeprecatedWarn : 1;
   bool MCSaveTempLabels : 1;
   bool MCUseDwarfDirectory : 1;


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D144565.503739.patch
Type: text/x-patch
Size: 3837 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230309/128236ec/attachment.bin>


More information about the llvm-commits mailing list