aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/MC/MCStreamer.cpp
diff options
context:
space:
mode:
authorVy Nguyen <vyng@google.com>2023-02-28 15:17:44 -0500
committerVy Nguyen <vyng@google.com>2023-05-18 13:27:47 -0400
commit09aaf53a05e3786eea374f3ce57574225036412d (patch)
tree33b3f11565ee442f6487197f3c67762e9cf6653f /llvm/lib/MC/MCStreamer.cpp
parent3f43abc9e78cce99741f7c8cf54552c95cc98d9f (diff)
downloadllvm-09aaf53a05e3786eea374f3ce57574225036412d.zip
llvm-09aaf53a05e3786eea374f3ce57574225036412d.tar.gz
llvm-09aaf53a05e3786eea374f3ce57574225036412d.tar.bz2
[RFC][MC][MachO]Only emits compact-unwind format for "canonical" personality symbols. For the rest, use DWARFs.
Details: https://github.com/rust-lang/rust/issues/102754 The MachO format uses 2 bits to encode these personality funtions, with 0 reserved for "no-personality". This means we can only have up to 3 personality. There are already three popular personalities: __gxx_personality_v0, __gcc_personality_v0, and __objc_personality_v0. As a result, any system that needs custom-personality will run into a problem. This patch implemented jyknight's proposal to simply force DWARFs for all non-canonical personality functions. Differential Revision: https://reviews.llvm.org/D144999
Diffstat (limited to 'llvm/lib/MC/MCStreamer.cpp')
-rw-r--r--llvm/lib/MC/MCStreamer.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/MC/MCStreamer.cpp b/llvm/lib/MC/MCStreamer.cpp
index 0cb0459..c0e9f42 100644
--- a/llvm/lib/MC/MCStreamer.cpp
+++ b/llvm/lib/MC/MCStreamer.cpp
@@ -126,7 +126,7 @@ void MCStreamer::emitExplicitComments() {}
void MCStreamer::generateCompactUnwindEncodings(MCAsmBackend *MAB) {
for (auto &FI : DwarfFrameInfos)
FI.CompactUnwindEncoding =
- (MAB ? MAB->generateCompactUnwindEncoding(FI.Instructions) : 0);
+ (MAB ? MAB->generateCompactUnwindEncoding(&FI, &Context) : 0);
}
/// EmitIntValue - Special case of EmitValue that avoids the client having to