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`?

Reply via email to