[Bug bootstrap/44255] [4.6 regression] gcc-4.6-20100522 bootstrap comparison failure on sparc64 and arm
mikpe at it dot uu dot se
gcc-bugzilla@gcc.gnu.org
Mon May 24 16:22:00 GMT 2010
------- Comment #5 from mikpe at it dot uu dot se 2010-05-24 16:21 -------
Comparing stage2-libiberty/cp-demangle.o with stage3-libiberty/cp-demangle.o
shows that one instruction has had it's source operands swapped:
> objdump -d stage2-libiberty/cp-demangle.o > a
> objdump -d stage3-libiberty/cp-demangle.o > b
> diff -u a b
--- a 2010-05-24 17:59:49.000000000 +0200
+++ b 2010-05-24 17:59:54.000000000 +0200
@@ -1,5 +1,5 @@
-stage2-libiberty/cp-demangle.o: file format elf32-sparc
+stage3-libiberty/cp-demangle.o: file format elf32-sparc
Disassembly of section .text:
@@ -4702,7 +4702,7 @@
5078: 89 29 20 04 sll %g4, 4, %g4
507c: 84 00 80 04 add %g2, %g4, %g2
5080: 84 00 b8 6c add %g2, -1940, %g2
- 5084: 84 80 80 03 addcc %g2, %g3, %g2
+ 5084: 84 80 c0 02 addcc %g3, %g2, %g2
5088: 22 80 02 11 be,a 58cc <cplus_demangle_type+0xa20>
508c: c4 00 a0 04 ld [ %g2 + 4 ], %g2
5090: c6 06 20 14 ld [ %i0 + 0x14 ], %g3
Now, the code is still correct, but gcc shouldn't arbitrarily change it's mind
like this in stage3. Hence I suspect r159600 introduces some non-determinism,
or exposes latent non-determinism.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44255
More information about the Gcc-bugs
mailing list