-
Notifications
You must be signed in to change notification settings - Fork 13.5k
[LLD] [ELF] Add support for linker script unary plus operator #121508
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@llvm/pr-subscribers-lld-elf @llvm/pr-subscribers-lld Author: Parth Arora (partaror) ChangesThis commit adds support for linker script unary plus ('+') operator. It is helpful for improving compatibility between LLD and GNU LD. Full diff: https://github.com/llvm/llvm-project/pull/121508.diff 2 Files Affected:
diff --git a/lld/ELF/ScriptParser.cpp b/lld/ELF/ScriptParser.cpp
index f53515cc3f3c0d..49ddd5e7999cfd 100644
--- a/lld/ELF/ScriptParser.cpp
+++ b/lld/ELF/ScriptParser.cpp
@@ -1489,6 +1489,9 @@ Expr ScriptParser::readPrimary() {
Expr e = readPrimary();
return [=] { return -e().getValue(); };
}
+ if (consume("+")) {
+ return readPrimary();
+ }
StringRef tok = next();
std::string location = getCurrentLocation();
diff --git a/lld/test/ELF/linkerscript/operators.test b/lld/test/ELF/linkerscript/operators.test
index 27209a2e40f598..d7b3becf36d706 100644
--- a/lld/test/ELF/linkerscript/operators.test
+++ b/lld/test/ELF/linkerscript/operators.test
@@ -73,6 +73,7 @@ SECTIONS {
log2ceil100000000 = LOG2CEIL(0x100000000);
log2ceil100000001 = LOG2CEIL(0x100000001);
log2ceilmax = LOG2CEIL(0xffffffffffffffff);
+ unaryadd = +3 + ++5;
}
# CHECK: 0000000000000002 A unary
@@ -126,6 +127,7 @@ SECTIONS {
# CHECK-NEXT: 0000000000000020 A log2ceil100000000
# CHECK-NEXT: 0000000000000021 A log2ceil100000001
# CHECK-NEXT: 0000000000000040 A log2ceilmax
+# CHECK-NEXT: 0000000000000008 A unaryadd
## Mailformed number error.
# RUN: echo "SECTIONS { . = 0x12Q41; }" > %t.script
|
c9eb228
to
e91a3e3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
e91a3e3
to
f35c48f
Compare
I'd prefer "Close" since this is a new minor feature instead of a bugfix. |
f35c48f
to
50e951c
Compare
Agreed. I have replaced |
50e951c
to
efe4fcf
Compare
Gentle ping for review @smithp35 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apologies, I didn't think you were waiting on me. I think an approval from MaskRay is sufficient.
LGTM too.
efe4fcf
to
df62c8d
Compare
@MaskRay Can you please let me know if it is okay if I merge the pull-request myself? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
df62c8d
to
70d10c8
Compare
This commit adds support for linker script unary plus ('+') operator. It is helpful for improving compatibility between LLD and GNU LD. Closes llvm#118047
668493a
to
910509c
Compare
This commit adds support for linker script unary plus ('+') operator. It is helpful for improving compatibility between LLD and GNU LD.
Closes #118047