[WinCOFF] Ignore .safeseh for non-x86 architectures
authorDavid Majnemer <david.majnemer@gmail.com>
Mon, 1 Jun 2015 07:34:26 +0000 (07:34 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Mon, 1 Jun 2015 07:34:26 +0000 (07:34 +0000)
We don't want to bother with creating .sxdata sections on Win64; all the
relevant information is already in the .pdata section.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238730 91177308-0d34-0410-b5e6-96231b3b80d8

lib/MC/WinCOFFStreamer.cpp

index abbe41649586032ce4f6adef19da8dd713fdb1e3..f007b5ee7c8ba227b31a1793abf753d681fb0d95 100644 (file)
@@ -159,6 +159,12 @@ void MCWinCOFFStreamer::EndCOFFSymbolDef() {
 }
 
 void MCWinCOFFStreamer::EmitCOFFSafeSEH(MCSymbol const *Symbol) {
+  // SafeSEH is a feature specific to 32-bit x86.  It does not exist (and is
+  // unnecessary) on all platforms which use table-based exception dispatch.
+  if (getContext().getObjectFileInfo()->getTargetTriple().getArch() !=
+      Triple::x86)
+    return;
+
   if (Symbol->getFlags() & COFF::SF_SafeSEH)
     return;