diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-04-28 13:55:31 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-04-28 13:55:31 +0000 |
commit | effdc7e9811da8fa2df9c23c7bfa9e9b722bb3ae (patch) | |
tree | 2eaf2e3e6ce6210396d8431dd48cbe9b6c2323f0 /llvm/lib | |
parent | 48e93f71811e374ecbd0ef431d4c9e4028b8a80c (diff) | |
download | bcm5719-llvm-effdc7e9811da8fa2df9c23c7bfa9e9b722bb3ae.tar.gz bcm5719-llvm-effdc7e9811da8fa2df9c23c7bfa9e9b722bb3ae.zip |
Use CIE version 4 for dwarf4.
According to http://www.dwarfstd.org/doc/DWARF4.pdf appendix F the CIE
version for dwarf 4 is 4.
llvm-svn: 235988
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/MC/MCDwarf.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/llvm/lib/MC/MCDwarf.cpp b/llvm/lib/MC/MCDwarf.cpp index e22b993d569..a8cb384054e 100644 --- a/llvm/lib/MC/MCDwarf.cpp +++ b/llvm/lib/MC/MCDwarf.cpp @@ -1244,6 +1244,20 @@ void FrameEmitterImpl::EmitCompactUnwind(MCObjectStreamer &Streamer, Streamer.EmitIntValue(0, Size); // No LSDA } +static unsigned getCIEVersion(bool IsEH, unsigned DwarfVersion) { + if (IsEH) + return 1; + switch (DwarfVersion) { + case 2: + return 1; + case 3: + return 3; + case 4: + return 4; + } + llvm_unreachable("Unknown version"); +} + const MCSymbol &FrameEmitterImpl::EmitCIE(MCObjectStreamer &streamer, const MCSymbol *personality, unsigned personalityEncoding, @@ -1270,10 +1284,7 @@ const MCSymbol &FrameEmitterImpl::EmitCIE(MCObjectStreamer &streamer, streamer.EmitIntValue(CIE_ID, 4); // Version - // For .eh_frame, we use CIE version 1 - // For DWARF2, we use CIE version 1 - // For DWARF3+, we use CIE version 3 - uint8_t CIEVersion = (IsEH || context.getDwarfVersion() <= 2) ? 1 : 3; + uint8_t CIEVersion = getCIEVersion(IsEH, context.getDwarfVersion()); streamer.EmitIntValue(CIEVersion, 1); // Augmentation String |