[lld] c64277d - [ELF] Speculatively fix older MSVC after &ctx change
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Sat Sep 21 14:57:42 PDT 2024
Author: Fangrui Song
Date: 2024-09-21T14:57:37-07:00
New Revision: c64277d1b480cee80a1f3c25ea03dd64f5199037
URL: https://github.com/llvm/llvm-project/commit/c64277d1b480cee80a1f3c25ea03dd64f5199037
DIFF: https://github.com/llvm/llvm-project/commit/c64277d1b480cee80a1f3c25ea03dd64f5199037.diff
LOG: [ELF] Speculatively fix older MSVC after &ctx change
https://lab.llvm.org/buildbot/#/builders/107/builds/3155
```
error C2039: 'ctx': is not a member of '`anonymous-namespace'::Writer<ELFT>::fixSectionAlignments::<lambda_38c4af40b02773e966aeff2e6bd45bf2>'
```
Added:
Modified:
lld/ELF/Writer.cpp
Removed:
################################################################################
diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp
index cf542b1a21cf8d..587f2e205da1ac 100644
--- a/lld/ELF/Writer.cpp
+++ b/lld/ELF/Writer.cpp
@@ -2387,7 +2387,7 @@ void Writer<ELFT>::addPhdrForSection(Partition &part, unsigned shType,
// such section.
template <class ELFT> void Writer<ELFT>::fixSectionAlignments() {
const PhdrEntry *prev;
- auto pageAlign = [&](const PhdrEntry *p) {
+ auto pageAlign = [&, &ctx = this->ctx](const PhdrEntry *p) {
OutputSection *cmd = p->firstSec;
if (!cmd)
return;
@@ -2427,13 +2427,13 @@ template <class ELFT> void Writer<ELFT>::fixSectionAlignments() {
// bug, musl (TLS Variant 1 architectures) before 1.1.23 handled TLS
// blocks correctly. We need to keep the workaround for a while.
else if (ctx.tlsPhdr && ctx.tlsPhdr->firstSec == p->firstSec)
- cmd->addrExpr = [&ctx = this->ctx] {
+ cmd->addrExpr = [&ctx] {
return alignToPowerOf2(ctx.script->getDot(), ctx.arg.maxPageSize) +
alignToPowerOf2(ctx.script->getDot() % ctx.arg.maxPageSize,
ctx.tlsPhdr->p_align);
};
else
- cmd->addrExpr = [&ctx = this->ctx] {
+ cmd->addrExpr = [&ctx] {
return alignToPowerOf2(ctx.script->getDot(), ctx.arg.maxPageSize) +
ctx.script->getDot() % ctx.arg.maxPageSize;
};
More information about the llvm-commits
mailing list