projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove unnecessary condition check.
[oota-llvm.git]
/
lib
/
MC
/
MCDwarf.cpp
diff --git
a/lib/MC/MCDwarf.cpp
b/lib/MC/MCDwarf.cpp
index 06ce502d572aef2a8b820eb75dc3a5e38b45c31d..4658a3093fab369ea8e91d7fb22c2ff2764c9140 100644
(file)
--- a/
lib/MC/MCDwarf.cpp
+++ b/
lib/MC/MCDwarf.cpp
@@
-895,7
+895,7
@@
MCSymbol *FrameEmitterImpl::EmitFDE(MCStreamer &streamer,
const MCObjectFileInfo *MOFI = context.getObjectFileInfo();
bool verboseAsm = streamer.isVerboseAsm();
const MCObjectFileInfo *MOFI = context.getObjectFileInfo();
bool verboseAsm = streamer.isVerboseAsm();
- if (
!MOFI->isFunctionEHFrameSymbolPrivate() && IsEH
) {
+ if (
IsEH && frame.Function && !MOFI->isFunctionEHFrameSymbolPrivate()
) {
MCSymbol *EHSym =
context.GetOrCreateSymbol(frame.Function->getName() + Twine(".eh"));
streamer.EmitEHSymAttributes(frame.Function, EHSym);
MCSymbol *EHSym =
context.GetOrCreateSymbol(frame.Function->getName() + Twine(".eh"));
streamer.EmitEHSymAttributes(frame.Function, EHSym);
@@
-1013,24
+1013,18
@@
void MCDwarfFrameEmitter::Emit(MCStreamer &Streamer,
MCObjectFileInfo *MOFI =
const_cast<MCObjectFileInfo*>(Context.getObjectFileInfo());
FrameEmitterImpl Emitter(UsingCFI, IsEH);
MCObjectFileInfo *MOFI =
const_cast<MCObjectFileInfo*>(Context.getObjectFileInfo());
FrameEmitterImpl Emitter(UsingCFI, IsEH);
- SmallVector<MCDwarfFrameInfo, 8> RequiresFDE;
- ArrayRef<MCDwarfFrameInfo> FrameArray;
+ ArrayRef<MCDwarfFrameInfo> FrameArray = Streamer.getFrameInfos();
- if (IsEH && MOFI->getCompactUnwindSection()) {
+ // Emit the compact unwind info if available.
+ // FIXME: This emits both the compact unwind and the old CIE/FDE
+ // information. Only one of those is needed.
+ if (IsEH && MOFI->getCompactUnwindSection())
for (unsigned i = 0, n = Streamer.getNumFrameInfos(); i < n; ++i) {
const MCDwarfFrameInfo &Frame = Streamer.getFrameInfo(i);
for (unsigned i = 0, n = Streamer.getNumFrameInfos(); i < n; ++i) {
const MCDwarfFrameInfo &Frame = Streamer.getFrameInfo(i);
- if (!Frame.CompactUnwindEncoding ||
- !Emitter.EmitCompactUnwind(Streamer, Frame))
- RequiresFDE.push_back(Streamer.getFrameInfo(i));
+ if (!Frame.CompactUnwindEncoding)
+ Emitter.EmitCompactUnwind(Streamer, Frame);
}
}
- // Early exit if we don't need to emit FDEs.
- if (RequiresFDE.empty()) return;
- FrameArray = RequiresFDE;
- } else {
- FrameArray = Streamer.getFrameInfos();
- }
-
const MCSection &Section = IsEH ? *MOFI->getEHFrameSection() :
*MOFI->getDwarfFrameSection();
Streamer.SwitchSection(&Section);
const MCSection &Section = IsEH ? *MOFI->getEHFrameSection() :
*MOFI->getDwarfFrameSection();
Streamer.SwitchSection(&Section);