commit | 6fac4d6ff2dfad4b1b3e82d135a6e3925663a8d6 | [log] [tgz] |
---|---|---|
author | Martin Storsjö <martin@martin.st> | Sat Jan 20 16:15:44 2024 +0200 |
committer | Copybara-Service <copybara-worker@google.com> | Sat Jan 20 06:21:32 2024 -0800 |
tree | 9c093080800e8e2d5631940133ad62663dcda898 | |
parent | 1076a8374b62c71f032b3d72a646c23aab6abcd5 [diff] |
[LLD] [COFF] Preserve directives and export names from LTO objects (#78802) The export names are saved as StringRefs pointing into the COFF directives. In the case of LTO objects, this can be memory allocated that is owned by the LTO InputFile, which gets destructed when doing the compilation. In the case of LTO objects from an older version of LLVM, which require being upgraded when loaded, the directives string gets destructed, while when using LTO objects of a matching version (the common case), the directives string points into memory that doesn't get destructed on LTO compilation. Test this by linking a bundled binary LTO object file, from an older version of LLVM. This fixes issue #78591, and downstream issue https://github.com/mstorsjo/llvm-mingw/issues/392. GitOrigin-RevId: d0986519d58e6d71656019cfa6604efa4bf6d3e7
This directory and its subdirectories contain source code for the LLVM Linker, a modular cross platform linker which is built as part of the LLVM compiler infrastructure project.
lld is open source software. You may freely distribute it under the terms of the license agreement found in LICENSE.txt.
In order to make sure various developers can evaluate patches over the same tests, we create a collection of self contained programs.
It is hosted at https://s3-us-west-2.amazonaws.com/linker-tests/lld-speed-test.tar.xz
The current sha256 is 10eec685463d5a8bbf08d77f4ca96282161d396c65bd97dc99dbde644a31610f
.