aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorPetr Hosek <phosek@google.com>2025-09-16 08:48:38 +0200
committerGitHub <noreply@github.com>2025-09-15 23:48:38 -0700
commit5bf399ba957e015e510210e0354cdc72ea1bf88d (patch)
tree82ed6e1aa42ffe28af1bab3d1eb33167d89e3f72 /flang/lib/Frontend/CompilerInvocation.cpp
parent008f9f30bc91bad94686540508805a219589684c (diff)
downloadllvm-5bf399ba957e015e510210e0354cdc72ea1bf88d.zip
llvm-5bf399ba957e015e510210e0354cdc72ea1bf88d.tar.gz
llvm-5bf399ba957e015e510210e0354cdc72ea1bf88d.tar.bz2
[libc] Move preinit/init/fini arrays to namespace (#158746)
In change #146863 we moved definitions of preinit/init/fini arrays to header but unintentionally moved outside of the namespace. Since the namespace also controls the visibility (through LIBC_NAMESPACE_DECL), as a consequence these symbols no longer have the hidden visibility which changes the codegen from: ``` 4: 4c11 ldr r4, [pc, #0x44] @ 0x4c <__libc_init_array+0x4c> 6: 4812 ldr r0, [pc, #0x48] @ 0x50 <__libc_init_array+0x50> 8: 447c add r4, pc a: 4478 add r0, pc c: 1b00 subs r0, r0, r4 ``` to: ``` 4: 4813 ldr r0, [pc, #0x4c] @ 0x54 <__libc_init_array+0x54> 6: 4914 ldr r1, [pc, #0x50] @ 0x58 <__libc_init_array+0x58> 8: 4478 add r0, pc a: 4479 add r1, pc c: 6804 ldr r4, [r0] e: 6808 ldr r0, [r1] 10: 1b00 subs r0, r0, r4 ``` The `ldr` will trigger a fault in case where these symbols aren't pointing to a valid memory location which is sometimes the case when the array is empty.
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions