forked from OSchip/llvm-project
[ELF] - Consistent spelling for error/warning messages
Previously error and warnings were not consistent in lld. Some of them started from lowercase letter, others from uppercase. Also there was one or two which had a dot at the end. This patch changes all messages to start from uppercase letter if they were not before. Differential revision: http://reviews.llvm.org/D18045 llvm-svn: 263125
This commit is contained in:
parent
278a5b31a5
commit
e094388861
|
@ -92,7 +92,7 @@ void LinkerDriver::addFile(StringRef Path) {
|
|||
using namespace llvm::sys::fs;
|
||||
log(Path);
|
||||
auto MBOrErr = MemoryBuffer::getFile(Path);
|
||||
if (error(MBOrErr, "cannot open " + Path))
|
||||
if (error(MBOrErr, "Cannot open " + Path))
|
||||
return;
|
||||
std::unique_ptr<MemoryBuffer> &MB = *MBOrErr;
|
||||
MemoryBufferRef MBRef = MB->getMemBufferRef();
|
||||
|
@ -313,7 +313,7 @@ void LinkerDriver::createFiles(opt::InputArgList &Args) {
|
|||
}
|
||||
|
||||
if (Files.empty() && !HasError)
|
||||
error("no input files.");
|
||||
error("No input files");
|
||||
}
|
||||
|
||||
template <class ELFT> void LinkerDriver::link(opt::InputArgList &Args) {
|
||||
|
|
|
@ -67,15 +67,15 @@ opt::InputArgList elf::parseArgs(llvm::BumpPtrAllocator *A,
|
|||
// Parse options and then do error checking.
|
||||
opt::InputArgList Args = Table.ParseArgs(Vec, MissingIndex, MissingCount);
|
||||
if (MissingCount)
|
||||
error(Twine("missing arg value for \"") + Args.getArgString(MissingIndex) +
|
||||
error(Twine("Missing arg value for \"") + Args.getArgString(MissingIndex) +
|
||||
"\", expected " + Twine(MissingCount) +
|
||||
(MissingCount == 1 ? " argument.\n" : " arguments"));
|
||||
|
||||
iterator_range<opt::arg_iterator> Unknowns = Args.filtered(OPT_UNKNOWN);
|
||||
for (auto *Arg : Unknowns)
|
||||
warning("warning: unknown argument: " + Arg->getSpelling());
|
||||
warning("Warning: unknown argument: " + Arg->getSpelling());
|
||||
if (Unknowns.begin() != Unknowns.end())
|
||||
error("unknown argument(s) found");
|
||||
error("Unknown argument(s) found");
|
||||
return Args;
|
||||
}
|
||||
|
||||
|
|
|
@ -302,7 +302,7 @@ SymbolBody *elf::ObjectFile<ELFT>::createSymbolBody(const Elf_Sym *Sym) {
|
|||
|
||||
switch (Sym->getBinding()) {
|
||||
default:
|
||||
fatal("unexpected binding");
|
||||
fatal("Unexpected binding");
|
||||
case STB_GLOBAL:
|
||||
case STB_WEAK:
|
||||
case STB_GNU_UNIQUE: {
|
||||
|
|
|
@ -166,7 +166,7 @@ void ScriptParser::run() {
|
|||
if (Handler Fn = Cmd.lookup(Tok))
|
||||
(this->*Fn)();
|
||||
else
|
||||
setError("unknown directive: " + Tok);
|
||||
setError("Unknown directive: " + Tok);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -190,7 +190,7 @@ std::vector<StringRef> ScriptParser::tokenize(StringRef S) {
|
|||
if (S.startswith("\"")) {
|
||||
size_t E = S.find("\"", 1);
|
||||
if (E == StringRef::npos) {
|
||||
error("unclosed quote");
|
||||
error("Unclosed quote");
|
||||
return {};
|
||||
}
|
||||
Ret.push_back(S.substr(1, E - 1));
|
||||
|
@ -217,7 +217,7 @@ StringRef ScriptParser::skipSpace(StringRef S) {
|
|||
if (S.startswith("/*")) {
|
||||
size_t E = S.find("*/", 2);
|
||||
if (E == StringRef::npos) {
|
||||
error("unclosed comment in a linker script");
|
||||
error("Unclosed comment in a linker script");
|
||||
return "";
|
||||
}
|
||||
S = S.substr(E + 2);
|
||||
|
@ -237,7 +237,7 @@ StringRef ScriptParser::next() {
|
|||
if (Error)
|
||||
return "";
|
||||
if (atEOF()) {
|
||||
setError("unexpected EOF");
|
||||
setError("Unexpected EOF");
|
||||
return "";
|
||||
}
|
||||
return Tokens[Pos++];
|
||||
|
@ -255,7 +255,7 @@ bool ScriptParser::skip(StringRef Tok) {
|
|||
if (Error)
|
||||
return false;
|
||||
if (atEOF()) {
|
||||
setError("unexpected EOF");
|
||||
setError("Unexpected EOF");
|
||||
return false;
|
||||
}
|
||||
if (Tok != Tokens[Pos])
|
||||
|
@ -352,7 +352,7 @@ void ScriptParser::readInclude() {
|
|||
StringRef Tok = next();
|
||||
auto MBOrErr = MemoryBuffer::getFile(Tok);
|
||||
if (!MBOrErr) {
|
||||
setError("cannot open " + Tok);
|
||||
setError("Cannot open " + Tok);
|
||||
return;
|
||||
}
|
||||
std::unique_ptr<MemoryBuffer> &MB = *MBOrErr;
|
||||
|
@ -385,7 +385,7 @@ void ScriptParser::readOutputFormat() {
|
|||
if (Tok == ")")
|
||||
return;
|
||||
if (Tok != ",") {
|
||||
setError("unexpected token: " + Tok);
|
||||
setError("Unexpected token: " + Tok);
|
||||
return;
|
||||
}
|
||||
next();
|
||||
|
|
|
@ -683,7 +683,7 @@ EhFrameHeader<ELFT>::getFdePc(uintX_t EhVA, const FdeData &F) {
|
|||
PC = read64<E>(F.PCRel);
|
||||
break;
|
||||
default:
|
||||
fatal("unknown FDE size encoding");
|
||||
fatal("Unknown FDE size encoding");
|
||||
}
|
||||
switch (F.Enc & 0x70) {
|
||||
case DW_EH_PE_absptr:
|
||||
|
@ -691,7 +691,7 @@ EhFrameHeader<ELFT>::getFdePc(uintX_t EhVA, const FdeData &F) {
|
|||
case DW_EH_PE_pcrel:
|
||||
return PC + EhVA + F.Off + 8;
|
||||
default:
|
||||
fatal("unknown FDE size relative encoding");
|
||||
fatal("Unknown FDE size relative encoding");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1002,7 +1002,7 @@ Cie<ELFT>::Cie(EHInputSection<ELFT> *S, unsigned Index)
|
|||
// Read a byte and advance D by one byte.
|
||||
static uint8_t readByte(ArrayRef<uint8_t> &D) {
|
||||
if (D.empty())
|
||||
fatal("corrupted or unsupported CIE information");
|
||||
fatal("Corrupted or unsupported CIE information");
|
||||
uint8_t B = D.front();
|
||||
D = D.slice(1);
|
||||
return B;
|
||||
|
@ -1015,7 +1015,7 @@ static void skipLeb128(ArrayRef<uint8_t> &D) {
|
|||
if ((Val & 0x80) == 0)
|
||||
return;
|
||||
}
|
||||
fatal("corrupted or unsupported CIE information");
|
||||
fatal("Corrupted or unsupported CIE information");
|
||||
}
|
||||
|
||||
template <class ELFT> static size_t getAugPSize(unsigned Enc) {
|
||||
|
@ -1033,7 +1033,7 @@ template <class ELFT> static size_t getAugPSize(unsigned Enc) {
|
|||
case DW_EH_PE_sdata8:
|
||||
return 8;
|
||||
}
|
||||
fatal("unknown FDE encoding");
|
||||
fatal("Unknown FDE encoding");
|
||||
}
|
||||
|
||||
template <class ELFT> static void skipAugP(ArrayRef<uint8_t> &D) {
|
||||
|
@ -1042,7 +1042,7 @@ template <class ELFT> static void skipAugP(ArrayRef<uint8_t> &D) {
|
|||
fatal("DW_EH_PE_aligned encoding is not supported");
|
||||
size_t Size = getAugPSize<ELFT>(Enc);
|
||||
if (Size >= D.size())
|
||||
fatal("corrupted CIE");
|
||||
fatal("Corrupted CIE");
|
||||
D = D.slice(Size);
|
||||
}
|
||||
|
||||
|
@ -1058,7 +1058,7 @@ uint8_t EHOutputSection<ELFT>::getFdeEncoding(ArrayRef<uint8_t> D) {
|
|||
|
||||
const unsigned char *AugEnd = std::find(D.begin() + 1, D.end(), '\0');
|
||||
if (AugEnd == D.end())
|
||||
fatal("corrupted CIE");
|
||||
fatal("Corrupted CIE");
|
||||
StringRef Aug(reinterpret_cast<const char *>(D.begin()), AugEnd - D.begin());
|
||||
D = D.slice(Aug.size() + 1);
|
||||
|
||||
|
@ -1094,7 +1094,7 @@ uint8_t EHOutputSection<ELFT>::getFdeEncoding(ArrayRef<uint8_t> D) {
|
|||
readByte(D);
|
||||
continue;
|
||||
}
|
||||
fatal("unknown .eh_frame augmentation string: " + Aug);
|
||||
fatal("Unknown .eh_frame augmentation string: " + Aug);
|
||||
}
|
||||
return DW_EH_PE_absptr;
|
||||
}
|
||||
|
|
|
@ -316,7 +316,7 @@ template <class ELFT> void SymbolTable<ELFT>::resolve(SymbolBody *New) {
|
|||
// equivalent (conflicting), or more preferable, respectively.
|
||||
int Comp = Existing->compare<ELFT>(New);
|
||||
if (Comp == 0) {
|
||||
std::string S = "duplicate symbol: " + conflictMsg(Existing, New);
|
||||
std::string S = "Duplicate symbol: " + conflictMsg(Existing, New);
|
||||
if (Config->AllowMultipleDefinition)
|
||||
warning(S);
|
||||
else
|
||||
|
|
|
@ -535,7 +535,7 @@ void X86TargetInfo::relocateOne(uint8_t *Loc, uint8_t *BufEnd, uint32_t Type,
|
|||
write32le(Loc, Out<ELF32LE>::TlsPhdr->p_memsz - SA);
|
||||
break;
|
||||
default:
|
||||
fatal("unrecognized reloc " + Twine(Type));
|
||||
fatal("Unrecognized reloc " + Twine(Type));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -953,7 +953,7 @@ void X86_64TargetInfo::relocateOne(uint8_t *Loc, uint8_t *BufEnd, uint32_t Type,
|
|||
break;
|
||||
}
|
||||
default:
|
||||
fatal("unrecognized reloc " + Twine(Type));
|
||||
fatal("Unrecognized reloc " + Twine(Type));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -983,7 +983,7 @@ void PPCTargetInfo::relocateOne(uint8_t *Loc, uint8_t *BufEnd, uint32_t Type,
|
|||
write16be(Loc, applyPPCLo(SA));
|
||||
break;
|
||||
default:
|
||||
fatal("unrecognized reloc " + Twine(Type));
|
||||
fatal("Unrecognized reloc " + Twine(Type));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1191,7 +1191,7 @@ void PPC64TargetInfo::relocateOne(uint8_t *Loc, uint8_t *BufEnd, uint32_t Type,
|
|||
write64be(Loc, SA);
|
||||
break;
|
||||
default:
|
||||
fatal("unrecognized reloc " + Twine(Type));
|
||||
fatal("Unrecognized reloc " + Twine(Type));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1454,7 +1454,7 @@ void AArch64TargetInfo::relocateOne(uint8_t *Loc, uint8_t *BufEnd,
|
|||
break;
|
||||
}
|
||||
default:
|
||||
fatal("unrecognized reloc " + Twine(Type));
|
||||
fatal("Unrecognized reloc " + Twine(Type));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1553,7 +1553,7 @@ void AArch64TargetInfo::relocateTlsIeToLe(uint32_t Type, uint8_t *Loc,
|
|||
void AMDGPUTargetInfo::relocateOne(uint8_t *Loc, uint8_t *BufEnd, uint32_t Type,
|
||||
uint64_t P, uint64_t SA, uint64_t ZA,
|
||||
uint8_t *PairedLoc) const {
|
||||
llvm_unreachable("not implemented");
|
||||
llvm_unreachable("Not implemented");
|
||||
}
|
||||
|
||||
template <class ELFT> MipsTargetInfo<ELFT>::MipsTargetInfo() {
|
||||
|
@ -1770,7 +1770,7 @@ void MipsTargetInfo<ELFT>::relocateOne(uint8_t *Loc, uint8_t *BufEnd,
|
|||
writeMipsLo16<E>(Loc, S + readSignedLo16<E>(Loc) - P);
|
||||
break;
|
||||
default:
|
||||
fatal("unrecognized reloc " + Twine(Type));
|
||||
fatal("Unrecognized reloc " + Twine(Type));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -516,7 +516,7 @@ static void reportUndefined(SymbolTable<ELFT> &Symtab, SymbolBody *Sym) {
|
|||
if ((Config->Relocatable || Config->Shared) && !Config->NoUndefined)
|
||||
return;
|
||||
|
||||
std::string Msg = "undefined symbol: " + Sym->getName().str();
|
||||
std::string Msg = "Undefined symbol: " + Sym->getName().str();
|
||||
if (InputFile *File = Symtab.findFile(Sym))
|
||||
Msg += " in " + File->getName().str();
|
||||
if (Config->NoinhibitExec)
|
||||
|
@ -1525,7 +1525,7 @@ template <class ELFT> bool Writer<ELFT>::openFile() {
|
|||
ErrorOr<std::unique_ptr<FileOutputBuffer>> BufferOrErr =
|
||||
FileOutputBuffer::create(Config->OutputFile, FileSize,
|
||||
FileOutputBuffer::F_executable);
|
||||
if (error(BufferOrErr, "failed to open " + Config->OutputFile))
|
||||
if (error(BufferOrErr, "Failed to open " + Config->OutputFile))
|
||||
return false;
|
||||
Buffer = std::move(*BufferOrErr);
|
||||
return true;
|
||||
|
|
|
@ -192,25 +192,25 @@ _start:
|
|||
|
||||
# RUN: not ld.lld %t.foo -o %t2 2>&1 | \
|
||||
# RUN: FileCheck --check-prefix=MISSING %s
|
||||
# MISSING: cannot open {{.*}}.foo: {{[Nn]}}o such file or directory
|
||||
# MISSING: Cannot open {{.*}}.foo: {{[Nn]}}o such file or directory
|
||||
|
||||
# RUN: not ld.lld -o %t2 2>&1 | \
|
||||
# RUN: FileCheck --check-prefix=NO_INPUT %s
|
||||
# NO_INPUT: no input files.
|
||||
# NO_INPUT: No input files
|
||||
|
||||
# RUN: not ld.lld %t.no.such.file -o %t2 2>&1 | \
|
||||
# RUN: FileCheck --check-prefix=CANNOT_OPEN %s
|
||||
# CANNOT_OPEN: cannot open {{.*}}.no.such.file: {{[Nn]}}o such file or directory
|
||||
# CANNOT_OPEN: Cannot open {{.*}}.no.such.file: {{[Nn]}}o such file or directory
|
||||
|
||||
# RUN: not ld.lld %t -o 2>&1 | FileCheck --check-prefix=NO_O_VAL %s
|
||||
# NO_O_VAL: missing arg value for "-o", expected 1 argument.
|
||||
# NO_O_VAL: Missing arg value for "-o", expected 1 argument.
|
||||
|
||||
# RUN: not ld.lld --foo 2>&1 | FileCheck --check-prefix=UNKNOWN %s
|
||||
# UNKNOWN: unknown argument: --foo
|
||||
# UNKNOWN: Warning: unknown argument: --foo
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
||||
# RUN: not ld.lld %t %t -o %t2 2>&1 | FileCheck --check-prefix=DUP %s
|
||||
# DUP: duplicate symbol: _start in {{.*}} and {{.*}}
|
||||
# DUP: Duplicate symbol: _start in {{.*}} and {{.*}}
|
||||
|
||||
# RUN: not ld.lld %t -o %t -m wrong_emul 2>&1 | FileCheck --check-prefix=UNKNOWN_EMUL %s
|
||||
# UNKNOWN_EMUL: Unknown emulation: wrong_emul
|
||||
|
|
|
@ -3,20 +3,20 @@
|
|||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t1.o
|
||||
# RUN: not ld.lld %t1.o %t1.o -o %t2 2>&1 | FileCheck -check-prefix=DEMANGLE %s
|
||||
|
||||
# DEMANGLE: duplicate symbol: {{mul\(double, double\)|_Z3muldd}} in
|
||||
# DEMANGLE: duplicate symbol: foo in
|
||||
# DEMANGLE: Duplicate symbol: {{mul\(double, double\)|_Z3muldd}} in
|
||||
# DEMANGLE: Duplicate symbol: foo in
|
||||
|
||||
# RUN: not ld.lld %t1.o %t1.o -o %t2 --no-demangle 2>&1 | \
|
||||
# RUN: FileCheck -check-prefix=NO_DEMANGLE %s
|
||||
|
||||
# NO_DEMANGLE: duplicate symbol: _Z3muldd in
|
||||
# NO_DEMANGLE: duplicate symbol: foo in
|
||||
# NO_DEMANGLE: Duplicate symbol: _Z3muldd in
|
||||
# NO_DEMANGLE: Duplicate symbol: foo in
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %S/Inputs/conflict.s -o %t2.o
|
||||
# RUN: llvm-ar rcs %t3.a %t2.o
|
||||
# RUN: not ld.lld %t1.o %t3.a -u baz -o %t2 2>&1 | FileCheck -check-prefix=ARCHIVE %s
|
||||
|
||||
# ARCHIVE: duplicate symbol: foo in {{.*}}1.o and {{.*}}3.a({{.*}}2.o)
|
||||
# ARCHIVE: Duplicate symbol: foo in {{.*}}1.o and {{.*}}3.a({{.*}}2.o)
|
||||
|
||||
.globl _Z3muldd, foo
|
||||
_Z3muldd:
|
||||
|
|
|
@ -3,16 +3,16 @@
|
|||
# RUN: not ld.lld --unknown1 --unknown2 -m foo /no/such/file -lnosuchlib \
|
||||
# RUN: 2>&1 | FileCheck -check-prefix=UNKNOWN %s
|
||||
|
||||
# UNKNOWN: warning: unknown argument: --unknown1
|
||||
# UNKNOWN: warning: unknown argument: --unknown2
|
||||
# UNKNOWN: unknown argument(s) found
|
||||
# UNKNOWN: Warning: unknown argument: --unknown1
|
||||
# UNKNOWN: Warning: unknown argument: --unknown2
|
||||
# UNKNOWN: Unknown argument(s) found
|
||||
# UNKNOWN: Unknown emulation: foo
|
||||
# UNKNOWN: cannot open /no/such/file
|
||||
# UNKNOWN: Cannot open /no/such/file
|
||||
# UNKNOWN: Unable to find library -lnosuchlib
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
||||
# RUN: not ld.lld %t -o /no/such/file 2>&1 | FileCheck -check-prefix=MISSING %s
|
||||
# MISSING: failed to open /no/such/file
|
||||
# MISSING: Failed to open /no/such/file
|
||||
|
||||
# RUN: ld.lld --help 2>&1 | FileCheck -check-prefix=HELP %s
|
||||
# HELP: USAGE:
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
|
||||
# RUN: not ld.lld -shared %t.o -o %t.so 2>&1 | FileCheck %s
|
||||
|
||||
# CHECK: duplicate symbol: _gp in (internal) and {{.*}}
|
||||
# CHECK: Duplicate symbol: _gp in (internal) and {{.*}}
|
||||
|
||||
# REQUIRES: mips
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
# RUN: not ld.lld %p/Inputs/invalid-binding.elf -o %t2 2>&1 | \
|
||||
# RUN: FileCheck --check-prefix=INVALID-BINDING %s
|
||||
# INVALID-BINDING: unexpected binding
|
||||
# INVALID-BINDING: Unexpected binding
|
||||
|
||||
# RUN: not ld.lld %p/Inputs/invalid-section-index.elf -o %t2 2>&1 | \
|
||||
# RUN: FileCheck --check-prefix=INVALID-SECTION-INDEX %s
|
||||
|
|
|
@ -13,12 +13,12 @@
|
|||
// Should fail if no library specified
|
||||
// RUN: not ld.lld -l 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=NOLIBRARY %s
|
||||
// NOLIBRARY: missing arg value for "-l", expected 1 argument.
|
||||
// NOLIBRARY: Missing arg value for "-l", expected 1 argument.
|
||||
|
||||
// Should not link because of undefined symbol _bar
|
||||
// RUN: not ld.lld -o %t3 %t.o 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=UNDEFINED %s
|
||||
// UNDEFINED: undefined symbol: _bar
|
||||
// UNDEFINED: Undefined symbol: _bar
|
||||
|
||||
// Should fail if cannot find specified library (without -L switch)
|
||||
// RUN: not ld.lld -o %t3 %t.o -lls 2>&1 \
|
||||
|
|
|
@ -58,7 +58,7 @@
|
|||
# RUN: not ld.lld -o %t2 %t.script %t > %t.log 2>&1
|
||||
# RUN: FileCheck -check-prefix=ERR-ENTRY %s < %t.log
|
||||
|
||||
# ERR-ENTRY: undefined symbol: _wrong_label
|
||||
# ERR-ENTRY: Undefined symbol: _wrong_label
|
||||
|
||||
# -e has precedence over linker script's ENTRY.
|
||||
# RUN: echo "ENTRY(_label)" > %t.script
|
||||
|
@ -104,7 +104,7 @@
|
|||
# RUN: not ld.lld -o foo %t.script > %t.log 2>&1
|
||||
# RUN: FileCheck -check-prefix=ERR1 %s < %t.log
|
||||
|
||||
# ERR1: unknown directive: FOO
|
||||
# ERR1: Unknown directive: FOO
|
||||
|
||||
.globl _start, _label;
|
||||
_start:
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
; REQUIRES: x86
|
||||
; RUN: llvm-as %s -o %t.o
|
||||
; RUN: not ld.lld -m elf_x86_64 %t.o %t.o -o %t.so -shared 2>&1 | FileCheck %s
|
||||
; CHECK: duplicate symbol: f in {{.*}}.o and {{.*}}.o
|
||||
; CHECK: Duplicate symbol: f in {{.*}}.o and {{.*}}.o
|
||||
target triple = "x86_64-unknown-linux-gnu"
|
||||
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
// Should not link because of undefined symbol _bar
|
||||
// RUN: not ld.lld -o %t/r %t/m.o 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=UNDEFINED %s
|
||||
// UNDEFINED: undefined symbol: _bar
|
||||
// UNDEFINED: Undefined symbol: _bar
|
||||
|
||||
// We need to be sure that there is no suitable library in the /lib directory
|
||||
// RUN: not ld.lld -o %t/r %t/m.o -L/lib -l:libls.a 2>&1 \
|
||||
|
|
|
@ -10,4 +10,4 @@
|
|||
_start:
|
||||
call __tls_get_addr
|
||||
|
||||
// CHECK: undefined symbol: __tls_get_addr
|
||||
// CHECK: Undefined symbol: __tls_get_addr
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
||||
# RUN: not ld.lld %t -o %t2 2>&1 | FileCheck %s
|
||||
# CHECK: undefined symbol: _start
|
||||
# CHECK: Undefined symbol: _start
|
||||
# REQUIRES: x86
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
|
||||
# RUN: not ld.lld %t -o %t2 2>&1 | FileCheck %s
|
||||
# CHECK: undefined symbol: bar in {{.*}}
|
||||
# CHECK: undefined symbol: foo in {{.*}}
|
||||
# CHECK: Undefined symbol: bar in {{.*}}
|
||||
# CHECK: Undefined symbol: foo in {{.*}}
|
||||
# REQUIRES: x86
|
||||
|
||||
.globl _start
|
||||
|
|
Loading…
Reference in New Issue