Skip to content

Commit 1f9979d

Browse files
committed
[lld][ELF] Add unittest for DEFINED
1 parent b4ec7d7 commit 1f9979d

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

lld/ELF/LinkerScriptLexer.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,8 @@ LinkerScriptLexer::TokenInfo LinkerScriptLexer::getSymbolToken() {
119119
return advanceTokenInfo(ScriptToken::Asterisk);
120120
case '=':
121121
return advanceTokenInfo(ScriptToken::Assign);
122+
case '?':
123+
return advanceTokenInfo(ScriptToken::QuestionMark);
122124
case '+':
123125
if (curStringRef.size() > 1 && curStringRef[1] == '=')
124126
return advanceTokenInfo(ScriptToken::PlusAssign, 2);

lld/unittests/ELF/LinkerScriptLexerTest.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,5 +480,27 @@ TEST_F(LinkerScriptLexerTest, checkDataCommands) {
480480
lexAndCheckTokens(ExpectedTokens);
481481
}
482482

483+
TEST_F(LinkerScriptLexerTest, checkDefinedTest) {
484+
llvm::StringRef testRef = "EXTERN(extern_defined) \nSECTIONS { . = \
485+
DEFINED(defined) ? 0x11000 : .;.foo : { *(.foo*) }";
486+
setupCallToLinkScriptLexer(testRef);
487+
llvm::SmallVector<ScriptToken> ExpectedTokens(
488+
{ScriptToken::LS_EXTERN, ScriptToken::BracektBegin,
489+
ScriptToken::Identifier, ScriptToken::BracektEnd,
490+
ScriptToken::LS_SECTIONS, ScriptToken::CurlyBegin,
491+
ScriptToken::Dot, ScriptToken::Assign,
492+
ScriptToken::LS_DEFINED, ScriptToken::BracektBegin,
493+
ScriptToken::Identifier, ScriptToken::BracektEnd,
494+
ScriptToken::QuestionMark, ScriptToken::Hexdecimal,
495+
ScriptToken::Colon, ScriptToken::Dot,
496+
ScriptToken::Semicolon, ScriptToken::Identifier,
497+
ScriptToken::Colon, ScriptToken::CurlyBegin,
498+
ScriptToken::Asterisk, ScriptToken::BracektBegin,
499+
ScriptToken::Identifier, ScriptToken::BracektEnd,
500+
ScriptToken::CurlyEnd});
501+
502+
lexAndCheckTokens(ExpectedTokens);
503+
}
504+
483505
} // namespace elf
484506
} // namespace lld

0 commit comments

Comments
 (0)