// 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))
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));
+}