diff options
author | Fangrui Song <i@maskray.me> | 2024-06-04 16:39:18 -0700 |
---|---|---|
committer | Fangrui Song <i@maskray.me> | 2024-06-04 16:39:18 -0700 |
commit | 85daa95b18b3e9778d90f1fc72d2c1b4e8282b64 (patch) | |
tree | dec5e3cd5c4695b3fb20b948a8b9c2a4cbf09248 /llvm/lib/MC | |
parent | c923d39509204c00d08240f04b96ce731646fb21 (diff) | |
download | llvm-85daa95b18b3e9778d90f1fc72d2c1b4e8282b64.zip llvm-85daa95b18b3e9778d90f1fc72d2c1b4e8282b64.tar.gz llvm-85daa95b18b3e9778d90f1fc72d2c1b4e8282b64.tar.bz2 |
[MC] Ensure UseAssemblerInfoForParsing is true upon return
Fixes: 5ee580bbfb11d781c220c19416c1a97b657e039a
5ee580bbfb11d781c220c19416c1a97b657e039a does not ensure that
UseAssemblerInfoForParsing is re-enabled. This is benign but not good.
Diffstat (limited to 'llvm/lib/MC')
-rw-r--r-- | llvm/lib/MC/MCDwarf.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/MC/MCDwarf.cpp b/llvm/lib/MC/MCDwarf.cpp index f7bc3a6..5032592 100644 --- a/llvm/lib/MC/MCDwarf.cpp +++ b/llvm/lib/MC/MCDwarf.cpp @@ -11,6 +11,7 @@ #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/Hashing.h" #include "llvm/ADT/STLExtras.h" +#include "llvm/ADT/ScopeExit.h" #include "llvm/ADT/SmallString.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringRef.h" @@ -1869,6 +1870,8 @@ void MCDwarfFrameEmitter::Emit(MCObjectStreamer &Streamer, MCAsmBackend *MAB, // label differences will be evaluate at write time. assert(Streamer.getUseAssemblerInfoForParsing()); Streamer.setUseAssemblerInfoForParsing(false); + auto Enable = llvm::make_scope_exit( + [&]() { Streamer.setUseAssemblerInfoForParsing(true); }); // Emit the compact unwind info if available. bool NeedsEHFrameSection = !MOFI->getSupportsCompactUnwindWithoutEHFrame(); @@ -1936,7 +1939,6 @@ void MCDwarfFrameEmitter::Emit(MCObjectStreamer &Streamer, MCAsmBackend *MAB, Emitter.EmitFDE(*CIEStart, Frame, I == E, *SectionStart); } - Streamer.setUseAssemblerInfoForParsing(true); } void MCDwarfFrameEmitter::encodeAdvanceLoc(MCContext &Context, |