[MTE] Disable all MTE protection of globals in sections (#78443)
commitc9f5b5c935bd12d76d4bafff61d8116cb3229972
authorMitch Phillips <31459023+hctim@users.noreply.github.com>
Mon, 22 Jan 2024 10:55:39 +0000 (22 11:55 +0100)
committerGitHub <noreply@github.com>
Mon, 22 Jan 2024 10:55:39 +0000 (22 11:55 +0100)
treee1475c6c54389030a1286e199e1cc8c10cc2a668
parentcc38cff05cfafb92bf91aadc39692ec5e12710a0
[MTE] Disable all MTE protection of globals in sections (#78443)

Previous work in this area (#70186) disabled MTE in constructor
sections. Looks like I missed one, ".preinit_array".

Also, in the meantime, I found an exciting feature in the linker where
globals placed into an explicit section, where the section name is a
valid C identifer, gets an implicit '__start_<sectionname>' and
'__stop_<sectionname>' symbol as well. This is convenient for iterating
over some globals, but of course iteration over differently-tagged
globals in MTE explodes.

Thus, disable MTE globals for anything that has a section.
clang/test/CodeGen/memtag-globals-asm.cpp
llvm/lib/Target/AArch64/AArch64GlobalsTagging.cpp