diff options
author | Anutosh Bhat <andersonbhat491@gmail.com> | 2025-04-25 20:05:00 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-25 07:35:00 -0700 |
commit | 9cbbb74d370c09e13b8412f21dccb7d2c4afc6a4 (patch) | |
tree | f9ae166df0fc653762c9434280ca5d8ab689ebb6 /clang/lib/Frontend/ASTMerge.cpp | |
parent | db53dfce415f47b964616e271350223e8a08f217 (diff) | |
download | llvm-9cbbb74d370c09e13b8412f21dccb7d2c4afc6a4.zip llvm-9cbbb74d370c09e13b8412f21dccb7d2c4afc6a4.tar.gz llvm-9cbbb74d370c09e13b8412f21dccb7d2c4afc6a4.tar.bz2 |
[wasm-ld] Refactor WasmSym from static globals to per-link context (#134970)
Towards
#https://github.com/llvm/llvm-project/issues/134809#issuecomment-2787206873
This change moves WasmSym from a static global struct to an instance
owned by Ctx, allowing it to be reset cleanly between linker runs. This
enables safe support for multiple invocations of wasm-ld within the same
process
Changes done
- Converted WasmSym from a static struct to a regular struct with
instance members.
- Added a std::unique_ptr<WasmSym> wasmSym field inside Ctx.
- Reset wasmSym in Ctx::reset() to clear state between links.
- Replaced all WasmSym:: references with ctx.wasmSym->.
- Removed global symbol definitions from Symbols.cpp that are no longer
needed.
Clearing wasmSym in ctx.reset() ensures a clean slate for each link
invocation, preventing symbol leakage across runs—critical when using
wasm-ld/lld as a reentrant library where global state can cause subtle,
hard-to-debug errors.
---------
Co-authored-by: Vassil Vassilev <v.g.vassilev@gmail.com>
Diffstat (limited to 'clang/lib/Frontend/ASTMerge.cpp')
0 files changed, 0 insertions, 0 deletions