--- Comment #8 from l dot jirkovsky at gmail dot com 2008-04-23 15:18
---
Thanks a lot. Actually I'm a very beginner in C++ and I don't understand this
code a lot.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36026
--- Comment #7 from rguenth at gcc dot gnu dot org 2008-04-23 14:48 ---
Btw:
gcc-4.3 -o t test_simple.c -O2 -Wstrict-overflow
test_simple.c: In function 'v_bignum_square_half':
test_simple.c:96: warning: assuming signed overflow does not occur when
simplifying conditional to constant
--- Comment #6 from rguenth at gcc dot gnu dot org 2008-04-23 14:32 ---
-fno-tree-vrp "fixes" it, but
D.2830_35: [0, 65535]
D.2839_49: [0, 65535]
D.2840_56: [0, +INF(OVF)]
D.2829_34 = *D.2828_33;
D.2830_35 = (int) D.2829_34;
...
D.2838_48 = *D.2837_47;
D.2839_49 = (int) D.2838
--- Comment #5 from jakub at gcc dot gnu dot org 2008-04-23 14:26 ---
Looking at it.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36026
--- Comment #4 from rguenth at gcc dot gnu dot org 2008-04-23 14:16 ---
ok, there are subtle differences (too large number to look at), but which is
correct, which is incorrect?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36026
--- Comment #3 from rguenth at gcc dot gnu dot org 2008-04-23 14:15 ---
What is correct, what is incorrect output? I get the same output
0x91F915BFDFAA69101B4D0720E517E6EAFAF7B231ADFFBBCDA5D630F51644A3466EC239357DA5989680018670CAAA4CA9CF5383B2E71A933A5608E3155DFF5071
for 3.3, 4.1, 4.2
--- Comment #2 from l dot jirkovsky at gmail dot com 2008-04-23 11:37
---
thanks to Ketling (one guy who helps me with identifying the bug) there is more
progress:
high = (uv & 0x8000) != 0; is always zero.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36026
--- Comment #1 from l dot jirkovsky at gmail dot com 2008-04-23 11:28
---
Created an attachment (id=15516)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15516&action=view)
test code from verse
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36026