Hi Adam,

This seems to be a gcc bug:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59124

I'm assuming that the code is actually written in such a way that the index will never actually go negative (due to what has been written previously).

The right fix here would be to disable the warning in gcc 4.x.

David

On 17/01/2018 9:50 PM, Adam Farley8 wrote:
Hi All,

If you compile jchuff.c (part of javajpeg) without
"--disable-warnings-as-errors",
then you get an error that kills the build. This is seen in these
circumstances:

Build: JDK9
gcc and g++ Version: 4.8.5
Platform: zLinux 64bit (s390x)

The error message is:

/home/adamfarl/hotspot/jdk9/jdk/src/java.desktop/share/native/libjavajpeg/jchuff.c:
In function 'jGenOptTbl':
/home/adamfarl/hotspot/jdk9/jdk/src/java.desktop/share/native/libjavajpeg/jchuff.c:808:18:
error: array subscript is below array bounds [-Werror=array-bounds]
       while (bits[j] == 0)
                  ^

It looks to me that this error happens because the while loop can
technically
reduce j down to beneath 0, resulting in us attempting to find the array
entry
with index -1.

On the basis that if we get down to -1 here bad things will happen
regardless,
perhaps we should change that line to:

       while ((bits[j] == 0) && (j != 0))

This appears to prevent the compiler failing with this error, by providing

unambiguous handling for the "index -1" scenario.

Thoughts?

Best Regards

Adam Farley

Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU

Reply via email to