https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121911
Sergei Trofimovich <slyfox at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |slyfox at gcc dot gnu.org
--- Comment #5 from Sergei Trofimovich <slyfox at gcc dot gnu.org> ---
The change broke `systemd` build as:
systemd> ../src/boot/efi-log.c:136:17: error: conflicting types for
'__stack_chk_guard'; have 'intptr_t' {aka 'long int'}
systemd> 136 | _used_ intptr_t __stack_chk_guard = (intptr_t)
0x70f6967de78acae3;
systemd> | ^~~~~~~~~~~~~~~~~
systemd> cc1: note: previous declaration of '__stack_chk_guard' with type 'long
unsigned int'
systemd> ../src/boot/efi-log.c:136:17: error: declaration of
'__stack_chk_guard' shadows a global declaration [-Werror=shadow]
systemd> 136 | _used_ intptr_t __stack_chk_guard = (intptr_t)
0x70f6967de78acae3;
systemd> | ^~~~~~~~~~~~~~~~~
`systemd` defines `__stack_chk_guard` as
https://github.com/systemd/systemd/blob/852fcf5134db04fccc4988decc4c5e8a33914700/src/boot/efi-log.c#L136
_used_ intptr_t __stack_chk_guard = (intptr_t) 0x70f6967de78acae3;
Should `systemd` be changed to `uintptr_t`? Or should `gcc` be tweaked to allow
`intptr_t`?