[Bug tree-optimization/18241] linux kernel loop gets miscompiled

ak at muc dot de gcc-bugzilla@gcc.gnu.org
Sun Oct 31 01:07:00 GMT 2004


------- Additional Comments From ak at muc dot de  2004-10-31 01:07 -------
Created an attachment (id=7440)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=7440&action=view)
miscompiled function


Compiled with -O2 -fno-reorder-blocks -mno-redzone -mcmodel=kernel

It crashes eventually in this loop

    do {
		int idx;

		tag_clear(pathp[0].node, tag, pathp[0].offset);
		for (idx = 0; idx < (((1UL << 6) + 64 - 1) / 64); idx++) {
			if (pathp[0].node->tags[tag][idx])
				goto out;
		}
		pathp--;
	} while (pathp[0].node);

when accessing pathp[0].node. I suspect it is overrunning the array on the
stack. With -O0 this crash doesn't happen.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18241



More information about the Gcc-bugs mailing list