[LinkerScript] Filler can have a decimal value.

llvm-svn: 277222
This commit is contained in:
Davide Italiano
2016-07-29 22:21:28 +00:00
parent b638558e12
commit 5ac0d7c5ad
2 changed files with 16 additions and 10 deletions

View File

@@ -799,13 +799,19 @@ std::vector<uint8_t> ScriptParser::readOutputSectionFiller() {
StringRef Tok = peek();
if (!Tok.startswith("="))
return {};
if (!Tok.startswith("=0x")) {
setError("filler should be a hexadecimal value");
next();
if (Tok.startswith("=0x"))
return parseHex(Tok.substr(3));
// This must be a decimal.
unsigned int Value;
if (Tok.substr(1).getAsInteger(10, Value)) {
setError("filler should be a decimal/hexadecimal value");
return {};
}
Tok = Tok.substr(3);
next();
return parseHex(Tok);
if (Value > 255)
setError("only single bytes decimal are supported for the filler now");
return {static_cast<unsigned char>(Value)};
}
void ScriptParser::readProvide(bool Hidden) {