From: Rafael Espindola Date: Wed, 27 Oct 2010 17:56:18 +0000 (+0000) Subject: Produce an error for an invalid use of .symver. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=83ff4d2b0d6133d48055a27fe25c5d241bca7e9b;p=oota-llvm.git Produce an error for an invalid use of .symver. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117462 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/MC/ELFObjectWriter.cpp b/lib/MC/ELFObjectWriter.cpp index 54d8123da02..1904397fe11 100644 --- a/lib/MC/ELFObjectWriter.cpp +++ b/lib/MC/ELFObjectWriter.cpp @@ -468,6 +468,11 @@ void ELFObjectWriterImpl::ExecutePostLayoutBinding(MCAssembler &Asm) { 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 t(&Symbol, &Alias); Renames.insert(t); } diff --git a/test/MC/ELF/invalid-symver.s b/test/MC/ELF/invalid-symver.s new file mode 100644 index 00000000000..3c4f8c084b9 --- /dev/null +++ b/test/MC/ELF/invalid-symver.s @@ -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