[lld] r205654 - [ELF] Diagnose malformed --dynsym option.
Rui Ueyama
ruiu at google.com
Fri Apr 4 15:36:31 PDT 2014
Author: ruiu
Date: Fri Apr 4 17:36:30 2014
New Revision: 205654
URL: http://llvm.org/viewvc/llvm-project?rev=205654&view=rev
Log:
[ELF] Diagnose malformed --dynsym option.
Modified:
lld/trunk/lib/Driver/GnuLdDriver.cpp
lld/trunk/unittests/DriverTests/GnuLdDriverTest.cpp
Modified: lld/trunk/lib/Driver/GnuLdDriver.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Driver/GnuLdDriver.cpp?rev=205654&r1=205653&r2=205654&view=diff
==============================================================================
--- lld/trunk/lib/Driver/GnuLdDriver.cpp (original)
+++ lld/trunk/lib/Driver/GnuLdDriver.cpp Fri Apr 4 17:36:30 2014
@@ -134,7 +134,7 @@ static error_code getFileMagic(ELFLinkin
// aliases yet.
static bool parseDefsymOption(StringRef opt, StringRef &sym, uint64_t &addr) {
size_t equalPos = opt.find('=');
- if (equalPos == StringRef::npos)
+ if (equalPos == 0 || equalPos == StringRef::npos)
return false;
sym = opt.substr(0, equalPos);
if (opt.substr(equalPos + 1).getAsInteger(0, addr))
Modified: lld/trunk/unittests/DriverTests/GnuLdDriverTest.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/unittests/DriverTests/GnuLdDriverTest.cpp?rev=205654&r1=205653&r2=205654&view=diff
==============================================================================
--- lld/trunk/unittests/DriverTests/GnuLdDriverTest.cpp (original)
+++ lld/trunk/unittests/DriverTests/GnuLdDriverTest.cpp Fri Apr 4 17:36:30 2014
@@ -71,3 +71,13 @@ TEST_F(GnuLdParserTest, DefsymFail) {
EXPECT_FALSE(
parse("ld", "--start-group", "--end-group", "--defsym=sym=abc", nullptr));
}
+
+TEST_F(GnuLdParserTest, DefsymMisssingSymbol) {
+ EXPECT_FALSE(
+ parse("ld", "--start-group", "--end-group", "--defsym==0", nullptr));
+}
+
+TEST_F(GnuLdParserTest, DefsymMisssingValue) {
+ EXPECT_FALSE(
+ parse("ld", "--start-group", "--end-group", "--defsym=sym=", nullptr));
+}
More information about the llvm-commits
mailing list