This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/36775] Incorrect code generated - value tested before it is set.
- From: "sfalco at harris dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 9 Jul 2008 21:08:56 -0000
- Subject: [Bug middle-end/36775] Incorrect code generated - value tested before it is set.
- References: <bug-36775-16442@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #5 from sfalco at harris dot com 2008-07-09 21:08 -------
That works. Here is what the generated code looks like. As you can see, r3 is
immediately stored to bb->list, which is what I would expect.
100004c0: 48 04 05 d1 bl 10040a90 <malloc@plt>
100004c4: 90 7d 00 0c stw r3,12(r29)
100004c8: 7c 60 fe 70 srawi r0,r3,31
100004cc: 81 61 00 08 lwz r11,8(r1)
100004d0: 7c 09 1a 78 xor r9,r0,r3
100004d4: 83 8b 00 0c lwz r28,12(r11)
100004d8: 7d 29 00 50 subf r9,r9,r0
100004dc: 3c 00 80 d4 lis r0,-32556
100004e0: 7d 3d fe 70 srawi r29,r9,31
100004e4: 60 00 48 ba ori r0,r0,18618
100004e8: 2f 9c 00 00 cmpwi cr7,r28,0
100004ec: 7f bd 00 38 and r29,r29,r0
100004f0: 3d 3d 7f 2c addis r9,r29,32556
100004f4: 3b a9 b7 46 addi r29,r9,-18618
100004f8: 41 9e 00 2c beq- cr7,10000524
<ext2fs_badblocks_list_create+0x98>
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36775