diff --git a/llvm/include/llvm/MC/MCTargetOptions.h b/llvm/include/llvm/MC/MCTargetOptions.h --- a/llvm/include/llvm/MC/MCTargetOptions.h +++ b/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; diff --git a/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h b/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h --- a/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h +++ b/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h @@ -38,8 +38,6 @@ bool getNoWarn(); -bool getWarnOverflow(); - bool getNoDeprecatedWarn(); std::string getABIName(); diff --git a/llvm/lib/MC/MCTargetOptionsCommandFlags.cpp b/llvm/lib/MC/MCTargetOptionsCommandFlags.cpp --- a/llvm/lib/MC/MCTargetOptionsCommandFlags.cpp +++ b/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 WarnOverflow( - "warn-overflow", cl::desc("Warn about section overflow in dwp and " - "preserve the overflow behavior")); - MCBINDOPT(WarnOverflow); - static cl::opt 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; } diff --git a/llvm/test/tools/llvm-dwp/X86/overflow-warning.test b/llvm/test/tools/llvm-dwp/X86/overflow-warning.test --- a/llvm/test/tools/llvm-dwp/X86/overflow-warning.test +++ b/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 diff --git a/llvm/tools/llvm-dwp/llvm-dwp.cpp b/llvm/tools/llvm-dwp/llvm-dwp.cpp --- a/llvm/tools/llvm-dwp/llvm-dwp.cpp +++ b/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 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 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; }