c++/5692: g++ 2.96, ix86: (int)(x*y) result depends on statements near it like cout << endl

yosefk@cs.huji.ac.il yosefk@cs.huji.ac.il
Thu Feb 14 12:36:00 GMT 2002


>Number:         5692
>Category:       c++
>Synopsis:       g++ 2.96, ix86: (int)(x*y) result depends on statements near it like cout << endl
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Feb 14 09:06:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Yosef Kreinin
>Release:        gcc version 2.96 20000731 (Red Hat Linux 7.0)
>Organization:
>Environment:
OS - Red Hat Linux 7.0
CPU - ix86
>Description:
It's about (int)(x*y) for doubles x & y
being undefined, inconsistent between different compilations
and dependant on the way of computation and SURROUNDING
STATEMENTS.

IT'S NOT ABOUT PRECISE RESULTS, 
IT'S ABOUT CONSISTENT RESULTS!

I URGE YOU NOT TO IGNORE THIS BUG AT ONCE JUST BECAUSE IT'S
ABOUT DOUBLE COMPUTATIONS, WHICH ARE _ALWAYS_ INACCURATE,
AS YOU SEEM TO PROMISE AT YOUR WEB SITE.
THEY STILL MUST BE CONSISTENT AND NOT DEPENDANT ON THINGS
LIKE cout << endl; IN THE CODE!

The buggy code is in Bug1.cpp & Bug2.cpp, VERY SHORT
and only uses iostreams & standard C++.
The script RunBugs compiles the files with different options,
and runs the executables.
 
The 3 problems below (the third one is the most severe) occur in the
following case: we have two doubles, x & y, the product x*y is very
close to an integer (a common case when you get such pairs is
x = double(z)/y, where z is an integer). Obviously,
the result of (int)(x*y) is not defined well, but the following problems
are worse then just (int)(x*y) != z:
 
1. Multiplying 2 doubles, then casting the result to int in 1 expression gives a DIFFERENT result
   then multiplying 2 doubles, storing the result in a temporary and then casting
   the temporary to int.
 
2. When using -O6, the result is IDENTICAL - so, -O6 is inconsistent
   with normal compilation.
 
3. When the second operand is obtained by using an accessor function of an object,
   and compiling with -O6, inserting a print statement CHANGES the result,
   so the result with -O6 and accessor function is UNPREDICTABLE.

This seems to be hardware-dependant - for instance,
no problems at all occur on solaris and gcc 2.95.2.
But, how cout << endl; may change the result unless
it's a compiler problem?

THIS IS PRETTY SEVERE SINCE THE RESULT OF A SIMPLE
OPERATION MAY NOT EVEN BE INSPECTED BY printing IT.
>How-To-Repeat:
Run the csh script RunBugs from the tar file.
If you don't want to do it, run g++ like this:

g++ -o Bug1 Bug1.cpp
g++ -o Bug1O6 Bug1.cpp -O6
g++ -o Bug2O6 Bug2.cpp -O6
g++ -o Bug2O6PRINT Bug2.cpp -O6 -DPRINT

Run the executables, and you'll see (just as with running
RunBugs) the following:

Bug1 and Bug1O6 show that
the result of (int)(x*y) is different from 
double prod = x*y;
(int)(prod)
when NOT using -O6 and is the same when using -O6.
Thus, the code knows how it was compiled and prints
it to standard output.

Bug2O6 and Bug2O6PRINT show that
the result is dependant on inserting cout << endl
between double prod = x*y and the casting, in
a similar way.

Read the source (Bug1.cpp & Bug2.cpp)
- it's short, only uses <iostream>,
I don't think you need *.ii files, but those are in
ii.tar.bz2 together with .out files - g++ output
when invoked with the described options plus -v -save-temps.

I spent about a day tracking this down and about
5 hours generating this bug report, it's hard
to make standalone code showing such a strange problem.
So please mail me back the status of this report...
>Fix:
A fix for the cases when you suppose the product
to be near an integer is to add an epsilon
(with the sign of the product) to the temporary
holding the product, this seems to work. But
I suppose in some application that is not good
enough, and also noone would do so, the problem
is the results are INCONSISTENT! Consistensy
is more important an times then PRECISION, so
one might use (int)(x*y) without concerning
precision, but assuming it's consistent
(on THE SAME processor!...) like any other computation.
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/x-tar; name="BugReport.tar"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="BugReport.tar"

UkVBRE1FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAwMTMx
MAAwMDAxNzUwADAwMDAwMDAyMDYwADA3NDMyMjYyNTYxADAxMTQ1NAAgMAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHlvc2VmawAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAZGV2ZWxvcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABU
aGUgYnVnZ3kgY29kZSBpcyBpbiBCdWcxLmNwcCAmIEJ1ZzIuY3BwLCBWRVJZIFNIT1JUIAphbmQg
b25seSB1c2VzIGlvc3RyZWFtcyAmIHN0YW5kYXJkIEMrKy4KVGhlIHNjcmlwdCBSdW5CdWdzIGNv
bXBpbGVzIHRoZSBmaWxlcyB3aXRoIGRpZmZlcmVudCBvcHRpb25zLAphbmQgcnVzIHRoZSBleGVj
dXRhYmxlcy4KClRoZSAzIHByb2JsZW1zIGJlbG93ICh0aGUgdGhpcmQgb25lIGlzIHRoZSBtb3N0
IHNldmVyZSkgb2NjdXIgaW4gdGhlCmZvbGxvd2luZyBjYXNlOiB3ZSBoYXZlIHR3byBkb3VibGVz
LCB4ICYgeSwgdGhlIHByb2R1Y3QgeCp5IGlzIHZlcnkKY2xvc2UgdG8gYW4gaW50ZWdlciAoYSBj
b21tb24gY2FzZSB3aGVuIHlvdSBnZXQgc3VjaCBwYWlycyBpcwp4ID0gZG91YmxlKHopL3ksIHdo
ZXJlIHogaXMgYW4gaW50ZWdlcikuIE9idmlvdXNseSwKdGhlIHJlc3VsdCBvZiAoaW50KSh4Knkp
IGlzIG5vdCBkZWZpbmVkIHdlbGwsIGJ1dCB0aGUgZm9sbG93aW5nIHByb2JsZW1zCmFyZSB3b3Jz
ZSB0aGVuIGp1c3QgKGludCkoeCp5KSAhPSB6OgoKMS4gTXVsdGlwbHlpbmcgMiBkb3VibGVzLCB0
aGVuIGNhc3RpbmcgdGhlIHJlc3VsdCB0byBpbnQgaW4gMSBleHByZXNzaW9uIGdpdmVzIGEgRElG
RkVSRU5UIHJlc3VsdAogICB0aGVuIG11bHRpcGx5aW5nIDIgZG91Ymxlcywgc3RvcmluZyB0aGUg
cmVzdWx0IGluIGEgdGVtcG9yYXJ5IGFuZCB0aGVuIGNhc3RpbmcKICAgdGhlIHRlbXBvcmFyeSB0
byBpbnQuCgoyLiBXaGVuIHVzaW5nIC1PNiwgdGhlIHJlc3VsdCBpcyBJREVOVElDQUwgLSBzbywg
LU82IGlzIGluY29uc2lzdGVudAogICB3aXRoIG5vcm1hbCBjb21waWxhdGlvbi4KCjMuIFdoZW4g
dGhlIHNlY29uZCBvcGVyYW5kIGlzIG9idGFpbmVkIGJ5IHVzaW5nIGFuIGFjY2Vzc29yIGZ1bmN0
aW9uIG9mIGFuIG9iamVjdCwKICAgYW5kIGNvbXBpbGluZyB3aXRoIC1PNiwgaW5zZXJ0aW5nIGEg
cHJpbnQgc3RhdGVtZW50IENIQU5HRVMgdGhlIHJlc3VsdCwKICAgc28gdGhlIHJlc3VsdCB3aXRo
IC1PNiBhbmQgYWNjZXNzb3IgZnVuY3Rpb24gaXMgVU5QUkVESUNUQUJMRS4KAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSdW5C
dWdzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDc3NwAwMDAxMzEwADAw
MDE3NTAAMDAwMDAwMDEzNDIAMDc0MzI3NjUwMTEAMDEyMTEzACAwAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAeW9zZWZrAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABkZXZlbG9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMhL2Jp
bi9jc2gKZWNobyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZWNobyBC
dWcgMSAtIGNvbXBpbGluZyB3aXRob3V0IG9wdGltaXphdGlvbnMKZWNobyBnKysgLW8gQnVnMSBC
dWcxLmNwcApnKysgLW8gQnVnMSBCdWcxLmNwcAplY2hvIEJ1ZzEgCi4vQnVnMQoKZWNobyBfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZWNobyBCdWcgMSAtIGNvbXBpbGlu
ZyB3aXRoIC1PNiBhbmQgZ2V0dGluZyBkaWZmZXJlbnQgcmVzdWx0CmVjaG8gZysrIC1vIEJ1ZzFP
NiBCdWcxLmNwcCAtTzYKZysrIC1vIEJ1ZzFPNiBCdWcxLmNwcCAtTzYKZWNobyBCdWcxTzYKLi9C
dWcxTzYKCmVjaG8gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmVjaG8g
QnVnIDIgLSBjb21waWxpbmcgd2l0aG91dCBwcmludCBhbmQgd2l0aCAtTzYKZWNobyBnKysgLW8g
QnVnMk82IEJ1ZzIuY3BwIC1PNgpnKysgLW8gQnVnMk82IEJ1ZzIuY3BwIC1PNgplY2hvIEJ1ZzJP
NgouL0J1ZzJPNgoKZWNobyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
ZWNobyBCdWcgMiAtIGNvbXBpbGluZyB3aXRoIHByaW50IGFuZCB3aXRoIC1PNgplY2hvIGcrKyAt
byBCdWcyTzZQUklOVCBCdWcyLmNwcCAtTzYgLURQUklOVApnKysgLW8gQnVnMk82UFJJTlQgQnVn
Mi5jcHAgLU82IC1EUFJJTlQKZWNobyBCdWcyTzZQUklOVAouL0J1ZzJPNlBSSU5UCgAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCdWcxLmNw
cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDY0NAAwMDAxMzEwADAwMDE3
NTAAMDAwMDAwMDA2NDcAMDc0MzIyNTY3MTcAMDEyMTE1ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAeW9zZWZrAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAABkZXZlbG9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNpbmNsdWRl
IDxpb3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgYnVnKGRvdWJsZSB5LGRvdWJs
ZSB4KQp7CiAgZG91YmxlIG11bCA9IHkgKiB4OwogIGlmKCAoKGludCkobXVsKSkgIT0gKChpbnQp
KHkgKiB4KSkgKSB7CiAgICBjb3V0IDw8ICJVbm9wdGltaXplZCBjb21waWxhdGlvbiwgYXJlIG5v
dCBlcXVhbCIgPDwgZW5kbDsKICB9CiAgZWxzZSB7CiAgICBjb3V0IDw8ICItTzYsIGVxdWFsIiA8
PCBlbmRsOwogIH0KfQoKaW50IG1haW4oKQp7CiAgZG91YmxlIHkgPSAxNy4zOTIxOTM5NzQxMTYz
MjQyODQyOTU4NDI1MTcxNjczMjk3ODgyMDgwMDc4MTI1OwogIGRvdWJsZSB4ID0gLTIuNzAyMzYx
NzY0NzA1ODgxOTYzNTIxOTYwNjQyNTM4MDMzNDI1ODA3OTUyODgwODU5Mzc1OwogIGJ1Zyh5LHgp
OwogIHJldHVybiAwOwp9CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQnVnMi5jcHAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAwMTMxMAAwMDAxNzUw
ADAwMDAwMDAxMDU0ADA3NDMyMjU2MDYzADAxMjEwMQAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHlvc2VmawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAZGV2ZWxvcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjaW5jbHVkZSA8
aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgUwp7CiAgZG91YmxlIHg7CiAg
ZG91YmxlIGdldFgoKSAKICB7IAogICAgcmV0dXJuIHg7IAogIH0KfSBzOwoKdm9pZCBidWcoZG91
YmxlIHkpCnsKICAgICAgZG91YmxlIG11bCA9IHkgKiBzLmdldFgoKTsKI2lmZGVmIFBSSU5UICAg
ICAgCiAgICAgIGNvdXQgPDwgZW5kbDsKI2VuZGlmICAgICAgCiAgICAgIGlmKCAoKGludCkobXVs
KSkgIT0gKChpbnQpKHkgKiBzLmdldFgoKSkpICkgewoJY291dCA8PCAiLU82LCBQUklOVElORyAt
IG5vdCBlcXVhbCIgPDwgZW5kbDsJCiAgICAgIH0KICAgICAgZWxzZSB7Cgljb3V0IDw8ICItTzYs
IE5PIFBSSU5UUywgZXF1YWwiIDw8IGVuZGw7CiAgICAgIH0KfQoKaW50IG1haW4oKQp7CiAgZG91
YmxlIHkgPSAxNy4zOTIxOTM5NzQxMTYzMjQyODQyOTU4NDI1MTcxNjczMjk3ODgyMDgwMDc4MTI1
OwogIHMueCA9IC0yLjcwMjM2MTc2NDcwNTg4MTk2MzUyMTk2MDY0MjUzODAzMzQyNTgwNzk1Mjg4
MDg1OTM3NTsKICBidWcoeSk7CiAgcmV0dXJuIDA7Cn0KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaWkudGFyLmJ6MgAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAwMTMxMAAwMDAxNzUwADAw
MDAwMDI1NzQyADA3NDMyNzY1NjQzADAxMjQyNgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAA=



More information about the Gcc-bugs mailing list