https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63404
Bug ID: 63404
Summary: gcc 5 miscompiles linux block layer
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: andi-gcc at firstfloor dot org
When I boot a current Linux mainline kernel compiled with mainline gcc
and the section fix patch applied I always get a crash at boot in the block
layer.
gcc version 5.0.0 20140926 (experimental) (GCC)
1.318801] EXT4-fs (sda1): write access will be enabled during recovery
[ 1.367592] ------------[ cut here ]------------
[ 1.369061] kernel BUG at /home/andi/lsrc/linux/block/blk-flush2.c:80!
[ 1.370910] invalid opcode: 0000 [#1] SMP
I narrowed it down to one function. When only the function is compiled with gcc
4.9 the kernel boots.
Attach is a test case with only the function.
It doesn't quite run by itself yet, so the code has to be examined.