namespace {
class FrameEmitterImpl {
int CFAOffset;
+ int CIENum;
public:
- FrameEmitterImpl() : CFAOffset(0) {
+ FrameEmitterImpl() : CFAOffset(0), CIENum(0) {
}
const MCSymbol &EmitCIE(MCStreamer &streamer,
const TargetAsmInfo &asmInfo = context.getTargetAsmInfo();
const MCSection §ion = *asmInfo.getEHFrameSection();
streamer.SwitchSection(§ion);
- MCSymbol *sectionStart = context.CreateTempSymbol();
+
+ MCSymbol *sectionStart;
+ if (asmInfo.isFunctionEHFrameSymbolPrivate())
+ sectionStart = context.CreateTempSymbol();
+ else
+ sectionStart = context.GetOrCreateSymbol(Twine("EH_frame") + Twine(CIENum));
+
+ CIENum++;
+
MCSymbol *sectionEnd = streamer.getContext().CreateTempSymbol();
// Length