[llvm-commits] [llvm] r130378 - /llvm/trunk/lib/MC/MCDwarf.cpp

Rafael Espindola rafael.espindola at gmail.com
Wed Apr 27 20:26:11 PDT 2011


Author: rafael
Date: Wed Apr 27 22:26:11 2011
New Revision: 130378

URL: http://llvm.org/viewvc/llvm-project?rev=130378&view=rev
Log:
Produce the EH_frame# symbols if needed.

Modified:
    llvm/trunk/lib/MC/MCDwarf.cpp

Modified: llvm/trunk/lib/MC/MCDwarf.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCDwarf.cpp?rev=130378&r1=130377&r2=130378&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCDwarf.cpp (original)
+++ llvm/trunk/lib/MC/MCDwarf.cpp Wed Apr 27 22:26:11 2011
@@ -494,9 +494,10 @@
 namespace {
   class FrameEmitterImpl {
     int CFAOffset;
+    int CIENum;
 
   public:
-    FrameEmitterImpl() : CFAOffset(0) {
+    FrameEmitterImpl() : CFAOffset(0), CIENum(0) {
     }
 
     const MCSymbol &EmitCIE(MCStreamer &streamer,
@@ -623,7 +624,15 @@
   const TargetAsmInfo &asmInfo = context.getTargetAsmInfo();
   const MCSection &section = *asmInfo.getEHFrameSection();
   streamer.SwitchSection(&section);
-  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





More information about the llvm-commits mailing list