This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] elf.h SHF_EXCLUDE signed int 31 bit shift triggers undefined behaviour.
- From: Florian Weimer <fweimer at redhat dot com>
- To: Andreas Schwab <schwab at linux-m68k dot org>
- Cc: Mark Wielaard <mjw at redhat dot com>, Szabolcs Nagy <szabolcs dot nagy at arm dot com>, "libc-alpha at sourceware dot org" <libc-alpha at sourceware dot org>, Josh Stone <jistone at redhat dot com>
- Date: Wed, 22 Apr 2015 10:33:02 +0200
- Subject: Re: [PATCH] elf.h SHF_EXCLUDE signed int 31 bit shift triggers undefined behaviour.
- Authentication-results: sourceware.org; auth=none
- References: <1427193579-26102-1-git-send-email-mjw at redhat dot com> <55117118 dot 1080706 at arm dot com> <20150324211541 dot GA2318 at blokker dot redhat dot com> <1429608058 dot 1938 dot 53 dot camel at bordewijk dot wildebeest dot org> <5537587D dot 5020707 at redhat dot com> <87vbgo6040 dot fsf at igel dot home>
On 04/22/2015 10:25 AM, Andreas Schwab wrote:
> Florian Weimer <fweimer@redhat.com> writes:
>
>> I think the safer change is to use -0x80000000 as the value of the
>> constant, without making it unsigned.
>
> -0x80000000 has unsigned type.
Ugh. The joys of C.
Using a cast would rely on a GCC extension, so one has to write
(-2147483647 - 1) to get the desired value. Wow.
--
Florian Weimer / Red Hat Product Security