llvm-project/llvm
Nikita Popov 4ef560ec60 [ELF] Handle .init_array prefix consistently
Currently, the code in TargetLoweringObjectFile only assigns
@init_array section type to plain .init_array sections, but not
prioritized sections like .init_array.00001.

This is inconsistent with the interpretation in the AsmParser
(see 791523bae6/llvm/lib/MC/MCParser/ELFAsmParser.cpp (L621-L632))
and upcoming expectations in LLD
(see https://github.com/rust-lang/rust/issues/92181 for context).

This patch assigns @init_array section type to all sections with an
.init_array prefix. The same is done for .fini_array and
.preinit_array as well. With that, the logic matches the AsmParser.

Differential Revision: https://reviews.llvm.org/D116528
2022-01-04 09:42:58 +01:00
..
benchmarks
bindings Fix forward for "signed version of createExpression" 2021-12-27 13:51:59 +01:00
cmake [NFC][CMake] Add FOLDER to utility targets 2022-01-03 12:16:30 -06:00
docs [IR] Allow the 'align' param attr on vectors of pointers 2022-01-03 12:32:46 +00:00
examples Remove redundant return and continue statements (NFC) 2021-12-24 23:17:54 -08:00
include [GlobalOpt][Evaluator] Rewrite global ctor evaluation (fixes PR51879) 2022-01-04 09:30:54 +01:00
lib [ELF] Handle .init_array prefix consistently 2022-01-04 09:42:58 +01:00
projects
resources
runtimes [runtimes] Remove LLVM_ENABLE_LLD 2021-12-17 15:03:57 -08:00
test [ELF] Handle .init_array prefix consistently 2022-01-04 09:42:58 +01:00
tools Revert "[llvm] Remove redundant member initialization (NFC)" 2022-01-03 11:28:47 -08:00
unittests [ValueTracking][SelectionDAG] Rename ComputeMinSignedBits->ComputeMaxSignificantBits. NFC 2022-01-03 11:33:30 -08:00
utils [gn build] Port 6f6f88ffda 2022-01-03 20:50:31 +00:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt [llvm][cmake] Normalize some indent 2022-01-03 07:34:09 +00:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT
README.txt
RELEASE_TESTERS.TXT
configure
llvm.spec.in

README.txt

The LLVM Compiler Infrastructure
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.