Infinite loop in dcraw with current GCC versions
dcoffin@shell.cybercom.net
dcoffin@shell.cybercom.net
Fri Feb 27 16:46:00 GMT 2015
This sounds like a compiler bug to me. A statement
of the form:
for (i=0; i < 12; i++) {
<code that doesn't change "i">
}
should never generate an infinite loop.
I ran my last full test (over 2000 raw photos) with
GCC 4.9.1 and the options:
gcc -O4 -march=native -fomit-frame-pointer \
-Wall -Wno-aggressive-loop-optimizations -Wno-maybe-uninitialized -Wno-unused-result -Wno-array-bounds \
dcraw.c -lm -ljasper -ljpeg -llcms2 -s
Dave Coffin 2/27/2015
On Fri, Feb 27, 2015 at 11:30:33AM +0100, conchur@web.de wrote:
> Hi,
> Â
> I think you know about the problem of undefined behavior in you dcraw code [1].
> This can lead to very bad things like infinite loops. Is there any progress or
> way to support you in fixing this?
>
> I know that there are some patches floating around like
>
> https://sources.debian.net/src/exactimage/0.9.1-2/debian/patches/gcc_48_dcraw_infinite_loop.patch/
>
> But they seem to be against older versions of dcraw.
>
> A good way to test against such problems is to use following CFLAGS:
>
> -g3 -fsanitize=undefined -fsanitize=address -Wall
>
> and then run your testset of images against them + recording
> the error messages.
>
> [1]Â https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54136#c5
More information about the Gcc-help
mailing list