diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2010-10-27 17:56:18 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2010-10-27 17:56:18 +0000 |
| commit | 26496e68350831e4d56d479fef1cb48d764354da (patch) | |
| tree | d46a21a2f1aed43b68e983b5be4459bfe9b975e4 | |
| parent | ba1c6cd62ff377b30c06a4330aade94adc8bfe53 (diff) | |
| download | bcm5719-llvm-26496e68350831e4d56d479fef1cb48d764354da.tar.gz bcm5719-llvm-26496e68350831e4d56d479fef1cb48d764354da.zip | |
Produce an error for an invalid use of .symver.
llvm-svn: 117462
| -rw-r--r-- | llvm/lib/MC/ELFObjectWriter.cpp | 5 | ||||
| -rw-r--r-- | llvm/test/MC/ELF/invalid-symver.s | 7 |
2 files changed, 12 insertions, 0 deletions
diff --git a/llvm/lib/MC/ELFObjectWriter.cpp b/llvm/lib/MC/ELFObjectWriter.cpp index 54d8123da02..1904397fe11 100644 --- a/llvm/lib/MC/ELFObjectWriter.cpp +++ b/llvm/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<const MCSymbol *, const MCSymbol *> t(&Symbol, &Alias); Renames.insert(t); } diff --git a/llvm/test/MC/ELF/invalid-symver.s b/llvm/test/MC/ELF/invalid-symver.s new file mode 100644 index 00000000000..3c4f8c084b9 --- /dev/null +++ b/llvm/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 |

