[llvm-commits] [llvm] r117462 - in /llvm/trunk: lib/MC/ELFObjectWriter.cpp test/MC/ELF/invalid-symver.s

Rafael Espindola rafael.espindola at gmail.com
Wed Oct 27 10:56:18 PDT 2010


Author: rafael
Date: Wed Oct 27 12:56:18 2010
New Revision: 117462

URL: http://llvm.org/viewvc/llvm-project?rev=117462&view=rev
Log:
Produce an error for an invalid use of .symver.

Added:
    llvm/trunk/test/MC/ELF/invalid-symver.s
Modified:
    llvm/trunk/lib/MC/ELFObjectWriter.cpp

Modified: llvm/trunk/lib/MC/ELFObjectWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/ELFObjectWriter.cpp?rev=117462&r1=117461&r2=117462&view=diff
==============================================================================
--- llvm/trunk/lib/MC/ELFObjectWriter.cpp (original)
+++ llvm/trunk/lib/MC/ELFObjectWriter.cpp Wed Oct 27 12:56:18 2010
@@ -468,6 +468,11 @@
     if (!Symbol.isUndefined() && !Rest.startswith("@@@"))
       continue;
 
+    // FIXME: produce a better error message.
+    if (Symbol.isUndefined() && Rest.startswith("@@") &&
+        !Rest.startswith("@@@"))
+      report_fatal_error("A @@ version cannot be undefined");
+
     std::pair<const MCSymbol *, const MCSymbol *> t(&Symbol, &Alias);
     Renames.insert(t);
   }

Added: llvm/trunk/test/MC/ELF/invalid-symver.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ELF/invalid-symver.s?rev=117462&view=auto
==============================================================================
--- llvm/trunk/test/MC/ELF/invalid-symver.s (added)
+++ llvm/trunk/test/MC/ELF/invalid-symver.s Wed Oct 27 12:56:18 2010
@@ -0,0 +1,7 @@
+// RUN: not llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o %t 2> %t.out
+// RUN: FileCheck --input-file=%t.out %s
+
+// CHECK: A @@ version cannot be undefined
+
+        .symver undefined, foo@@bar
+        .long undefined





More information about the llvm-commits mailing list