Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Mon, 25 Jun 2012 11:03:32 +0200
From: Frank Dittrich <frank_dittrich@...mail.com>
To: john-dev@...ts.openwall.com
Subject: Re: compiler warnings: make clean linux-x86-clang > /dev/null

On 06/25/2012 10:41 AM, Solar Designer wrote:
> On Mon, Jun 25, 2012 at 10:26:22AM +0200, Frank Dittrich wrote:
>> But some definitely look suspicious:
>>
>>
>> single.c:330:8: warning: array index of '1' indexes past the end of an
>> array (that contains 1 elements)
>>       [-Warray-bounds]
>>                         if (first->data[1]) {
>>                             ^           ~
>> In file included from single.c:15:
>> In file included from ./loader.h:16:
>> ./list.h:19:7: note: array 'data' declared here
>>         char data[1];
>>              ^
> 
> This is as intended.

I thought so. After sending my mail I did a git blame, and saw that it
was that way virtually "forever".

> A real concern is
> that some compiler might think that since the behavior is undefined
> anyway, it can optimize this out, or maybe trap it as a runtime fault.

Yes, GCC and their "C language lawyers" are always searching for new
possibilities to improve performance.
(That reminds me: apparently there is still no progress here:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51017)
You would have to be happy if the result is a runtime fault instead of
silently, without any warning doing what the programmer definitely never
intended.

Frank

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.