optimization/9668: Optimizing results in nans in output

Richard_Pringle@XonTech.com Richard_Pringle@XonTech.com
Tue Feb 11 23:56:00 GMT 2003


>Number:         9668
>Category:       optimization
>Synopsis:       Optimizing results in nans in output
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Feb 11 23:56:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Rich Pringle
>Release:        gcc version 2.96
>Organization:
>Environment:
Red Hat Linux 7.1 2.96-81
>Description:
See Synopsis
>How-To-Repeat:
gcc test1.c -O3
>Fix:
Do not optimize, or

change #define SIZE_X 20 to const unsigned int SIZE_X=20;
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="test1.i"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="test1.i"

IyAyICJ0ZXN0MS5jIg0KIyAxICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMSAzDQojIDI3ICIvdXNy
L2luY2x1ZGUvc3RkaW8uaCIgMw0KIyAxICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMSAzDQoj
IDI4MyAiL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmgiIDMNCiMgMSAiL3Vzci9pbmNsdWRlL3N5cy9j
ZGVmcy5oIiAxIDMNCiMgMjg0ICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMiAzDQojIDMxMSAi
L3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmgiIDMNCiMgMSAiL3Vzci9pbmNsdWRlL2dudS9zdHVicy5o
IiAxIDMNCiMgMzEyICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMiAzDQojIDI4ICIvdXNyL2lu
Y2x1ZGUvc3RkaW8uaCIgMiAzDQoNCg0KDQoNCg0KIyAxICIvdXNyL2xpYi9nY2MtbGliL2kzODYt
cmVkaGF0LWxpbnV4LzIuOTYvaW5jbHVkZS9zdGRkZWYuaCIgMSAzDQojIDE5OSAiL3Vzci9saWIv
Z2NjLWxpYi9pMzg2LXJlZGhhdC1saW51eC8yLjk2L2luY2x1ZGUvc3RkZGVmLmgiIDMNCnR5cGVk
ZWYgdW5zaWduZWQgaW50IHNpemVfdDsNCiMgMzQgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAyIDMN
Cg0KIyAxICIvdXNyL2luY2x1ZGUvYml0cy90eXBlcy5oIiAxIDMNCiMgMjYgIi91c3IvaW5jbHVk
ZS9iaXRzL3R5cGVzLmgiIDMNCiMgMSAiL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmgiIDEgMw0KIyAy
NyAiL3Vzci9pbmNsdWRlL2JpdHMvdHlwZXMuaCIgMiAzDQoNCg0KIyAxICIvdXNyL2xpYi9nY2Mt
bGliL2kzODYtcmVkaGF0LWxpbnV4LzIuOTYvaW5jbHVkZS9zdGRkZWYuaCIgMSAzDQojIDMwICIv
dXNyL2luY2x1ZGUvYml0cy90eXBlcy5oIiAyIDMNCg0KDQp0eXBlZGVmIHVuc2lnbmVkIGNoYXIg
X191X2NoYXI7DQp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IF9fdV9zaG9ydDsNCnR5cGVkZWYgdW5z
aWduZWQgaW50IF9fdV9pbnQ7DQp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgX191X2xvbmc7DQoNCl9f
ZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IF9fdV9xdWFkX3Q7DQpf
X2V4dGVuc2lvbl9fIHR5cGVkZWYgbG9uZyBsb25nIGludCBfX3F1YWRfdDsNCiMgNDkgIi91c3Iv
aW5jbHVkZS9iaXRzL3R5cGVzLmgiIDMNCnR5cGVkZWYgc2lnbmVkIGNoYXIgX19pbnQ4X3Q7DQp0
eXBlZGVmIHVuc2lnbmVkIGNoYXIgX191aW50OF90Ow0KdHlwZWRlZiBzaWduZWQgc2hvcnQgaW50
IF9faW50MTZfdDsNCnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgaW50IF9fdWludDE2X3Q7DQp0eXBl
ZGVmIHNpZ25lZCBpbnQgX19pbnQzMl90Ow0KdHlwZWRlZiB1bnNpZ25lZCBpbnQgX191aW50MzJf
dDsNCg0KX19leHRlbnNpb25fXyB0eXBlZGVmIHNpZ25lZCBsb25nIGxvbmcgaW50IF9faW50NjRf
dDsNCl9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IF9fdWludDY0
X3Q7DQoNCnR5cGVkZWYgX19xdWFkX3QgKl9fcWFkZHJfdDsNCg0KdHlwZWRlZiBfX3VfcXVhZF90
IF9fZGV2X3Q7DQp0eXBlZGVmIF9fdV9pbnQgX191aWRfdDsNCnR5cGVkZWYgX191X2ludCBfX2dp
ZF90Ow0KdHlwZWRlZiBfX3VfbG9uZyBfX2lub190Ow0KdHlwZWRlZiBfX3VfaW50IF9fbW9kZV90
Ow0KdHlwZWRlZiBfX3VfaW50IF9fbmxpbmtfdDsNCnR5cGVkZWYgbG9uZyBpbnQgX19vZmZfdDsN
CnR5cGVkZWYgX19xdWFkX3QgX19sb2ZmX3Q7DQp0eXBlZGVmIGludCBfX3BpZF90Ow0KdHlwZWRl
ZiBpbnQgX19zc2l6ZV90Ow0KdHlwZWRlZiBfX3VfbG9uZyBfX3JsaW1fdDsNCnR5cGVkZWYgX191
X3F1YWRfdCBfX3JsaW02NF90Ow0KdHlwZWRlZiBfX3VfaW50IF9faWRfdDsNCg0KdHlwZWRlZiBz
dHJ1Y3QNCiAgew0KICAgIGludCBfX3ZhbFsyXTsNCiAgfSBfX2ZzaWRfdDsNCg0KDQp0eXBlZGVm
IGludCBfX2RhZGRyX3Q7DQp0eXBlZGVmIGNoYXIgKl9fY2FkZHJfdDsNCnR5cGVkZWYgbG9uZyBp
bnQgX190aW1lX3Q7DQp0eXBlZGVmIHVuc2lnbmVkIGludCBfX3VzZWNvbmRzX3Q7DQp0eXBlZGVm
IGxvbmcgaW50IF9fc3VzZWNvbmRzX3Q7DQp0eXBlZGVmIGxvbmcgaW50IF9fc3dibGtfdDsNCg0K
dHlwZWRlZiBsb25nIGludCBfX2Nsb2NrX3Q7DQoNCg0KdHlwZWRlZiBpbnQgX19jbG9ja2lkX3Q7
DQoNCg0KdHlwZWRlZiBpbnQgX190aW1lcl90Ow0KDQoNCg0KDQoNCg0KdHlwZWRlZiBpbnQgX19r
ZXlfdDsNCg0KDQp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IGludCBfX2lwY19waWRfdDsNCg0KDQoN
CnR5cGVkZWYgbG9uZyBpbnQgX19ibGtzaXplX3Q7DQoNCg0KDQoNCnR5cGVkZWYgbG9uZyBpbnQg
X19ibGtjbnRfdDsNCnR5cGVkZWYgX19xdWFkX3QgX19ibGtjbnQ2NF90Ow0KDQoNCnR5cGVkZWYg
X191X2xvbmcgX19mc2Jsa2NudF90Ow0KdHlwZWRlZiBfX3VfcXVhZF90IF9fZnNibGtjbnQ2NF90
Ow0KDQoNCnR5cGVkZWYgX191X2xvbmcgX19mc2ZpbGNudF90Ow0KdHlwZWRlZiBfX3VfcXVhZF90
IF9fZnNmaWxjbnQ2NF90Ow0KDQoNCnR5cGVkZWYgX191X3F1YWRfdCBfX2lubzY0X3Q7DQoNCg0K
dHlwZWRlZiBfX2xvZmZfdCBfX29mZjY0X3Q7DQoNCg0KdHlwZWRlZiBsb25nIGludCBfX3Rfc2Nh
bGFyX3Q7DQp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgaW50IF9fdF91c2NhbGFyX3Q7DQoNCg0KdHlw
ZWRlZiBpbnQgX19pbnRwdHJfdDsNCg0KDQp0eXBlZGVmIHVuc2lnbmVkIGludCBfX3NvY2tsZW5f
dDsNCg0KDQoNCg0KIyAxICIvdXNyL2luY2x1ZGUvYml0cy9wdGhyZWFkdHlwZXMuaCIgMSAzDQoj
IDIzICIvdXNyL2luY2x1ZGUvYml0cy9wdGhyZWFkdHlwZXMuaCIgMw0KIyAxICIvdXNyL2luY2x1
ZGUvYml0cy9zY2hlZC5oIiAxIDMNCiMgNjggIi91c3IvaW5jbHVkZS9iaXRzL3NjaGVkLmgiIDMN
CnN0cnVjdCBfX3NjaGVkX3BhcmFtDQogIHsNCiAgICBpbnQgX19zY2hlZF9wcmlvcml0eTsNCiAg
fTsNCiMgMjQgIi91c3IvaW5jbHVkZS9iaXRzL3B0aHJlYWR0eXBlcy5oIiAyIDMNCg0KDQpzdHJ1
Y3QgX3B0aHJlYWRfZmFzdGxvY2sNCnsNCiAgbG9uZyBpbnQgX19zdGF0dXM7DQogIGludCBfX3Nw
aW5sb2NrOw0KDQp9Ow0KDQoNCg0KdHlwZWRlZiBzdHJ1Y3QgX3B0aHJlYWRfZGVzY3Jfc3RydWN0
ICpfcHRocmVhZF9kZXNjcjsNCg0KDQoNCg0KDQp0eXBlZGVmIHN0cnVjdCBfX3B0aHJlYWRfYXR0
cl9zDQp7DQogIGludCBfX2RldGFjaHN0YXRlOw0KICBpbnQgX19zY2hlZHBvbGljeTsNCiAgc3Ry
dWN0IF9fc2NoZWRfcGFyYW0gX19zY2hlZHBhcmFtOw0KICBpbnQgX19pbmhlcml0c2NoZWQ7DQog
IGludCBfX3Njb3BlOw0KICBzaXplX3QgX19ndWFyZHNpemU7DQogIGludCBfX3N0YWNrYWRkcl9z
ZXQ7DQogIHZvaWQgKl9fc3RhY2thZGRyOw0KICBzaXplX3QgX19zdGFja3NpemU7DQp9IHB0aHJl
YWRfYXR0cl90Ow0KDQoNCg0KdHlwZWRlZiBzdHJ1Y3QNCnsNCiAgc3RydWN0IF9wdGhyZWFkX2Zh
c3Rsb2NrIF9fY19sb2NrOw0KICBfcHRocmVhZF9kZXNjciBfX2Nfd2FpdGluZzsNCn0gcHRocmVh
ZF9jb25kX3Q7DQoNCg0KDQp0eXBlZGVmIHN0cnVjdA0Kew0KICBpbnQgX19kdW1teTsNCn0gcHRo
cmVhZF9jb25kYXR0cl90Ow0KDQoNCnR5cGVkZWYgdW5zaWduZWQgaW50IHB0aHJlYWRfa2V5X3Q7
DQoNCg0KDQoNCg0KdHlwZWRlZiBzdHJ1Y3QNCnsNCiAgaW50IF9fbV9yZXNlcnZlZDsNCiAgaW50
IF9fbV9jb3VudDsNCiAgX3B0aHJlYWRfZGVzY3IgX19tX293bmVyOw0KICBpbnQgX19tX2tpbmQ7
DQogIHN0cnVjdCBfcHRocmVhZF9mYXN0bG9jayBfX21fbG9jazsNCn0gcHRocmVhZF9tdXRleF90
Ow0KDQoNCg0KdHlwZWRlZiBzdHJ1Y3QNCnsNCiAgaW50IF9fbXV0ZXhraW5kOw0KfSBwdGhyZWFk
X211dGV4YXR0cl90Ow0KDQoNCg0KdHlwZWRlZiBpbnQgcHRocmVhZF9vbmNlX3Q7DQojIDE0MCAi
L3Vzci9pbmNsdWRlL2JpdHMvcHRocmVhZHR5cGVzLmgiIDMNCnR5cGVkZWYgdW5zaWduZWQgbG9u
ZyBpbnQgcHRocmVhZF90Ow0KIyAxNDQgIi91c3IvaW5jbHVkZS9iaXRzL3R5cGVzLmgiIDIgMw0K
IyAzNiAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDIgMw0KIyA0NCAiL3Vzci9pbmNsdWRlL3N0ZGlv
LmgiIDMNCnR5cGVkZWYgc3RydWN0IF9JT19GSUxFIEZJTEU7DQojIDU0ICIvdXNyL2luY2x1ZGUv
c3RkaW8uaCIgMw0KdHlwZWRlZiBzdHJ1Y3QgX0lPX0ZJTEUgX19GSUxFOw0KIyA2NCAiL3Vzci9p
bmNsdWRlL3N0ZGlvLmgiIDMNCiMgMSAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDEgMw0KIyAzMCAi
L3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMNCiMgMSAiL3Vzci9pbmNsdWRlL19HX2NvbmZpZy5oIiAx
IDMNCiMgOSAiL3Vzci9pbmNsdWRlL19HX2NvbmZpZy5oIiAzDQojIDEgIi91c3IvaW5jbHVkZS9i
aXRzL3R5cGVzLmgiIDEgMw0KIyAxMCAiL3Vzci9pbmNsdWRlL19HX2NvbmZpZy5oIiAyIDMNCg0K
DQoNCg0KIyAxICIvdXNyL2xpYi9nY2MtbGliL2kzODYtcmVkaGF0LWxpbnV4LzIuOTYvaW5jbHVk
ZS9zdGRkZWYuaCIgMSAzDQojIDI4NyAiL3Vzci9saWIvZ2NjLWxpYi9pMzg2LXJlZGhhdC1saW51
eC8yLjk2L2luY2x1ZGUvc3RkZGVmLmgiIDMNCnR5cGVkZWYgbG9uZyBpbnQgd2NoYXJfdDsNCiMg
MzEyICIvdXNyL2xpYi9nY2MtbGliL2kzODYtcmVkaGF0LWxpbnV4LzIuOTYvaW5jbHVkZS9zdGRk
ZWYuaCIgMw0KdHlwZWRlZiB1bnNpZ25lZCBpbnQgd2ludF90Ow0KIyAxNSAiL3Vzci9pbmNsdWRl
L19HX2NvbmZpZy5oIiAyIDMNCiMgMjQgIi91c3IvaW5jbHVkZS9fR19jb25maWcuaCIgMw0KIyAx
ICIvdXNyL2luY2x1ZGUvd2NoYXIuaCIgMSAzDQojIDQ4ICIvdXNyL2luY2x1ZGUvd2NoYXIuaCIg
Mw0KIyAxICIvdXNyL2xpYi9nY2MtbGliL2kzODYtcmVkaGF0LWxpbnV4LzIuOTYvaW5jbHVkZS9z
dGRkZWYuaCIgMSAzDQojIDQ5ICIvdXNyL2luY2x1ZGUvd2NoYXIuaCIgMiAzDQoNCiMgMSAiL3Vz
ci9pbmNsdWRlL2JpdHMvd2NoYXIuaCIgMSAzDQojIDUxICIvdXNyL2luY2x1ZGUvd2NoYXIuaCIg
MiAzDQojIDY3ICIvdXNyL2luY2x1ZGUvd2NoYXIuaCIgMw0KdHlwZWRlZiBzdHJ1Y3QNCnsNCiAg
aW50IF9fY291bnQ7DQogIHVuaW9uDQogIHsNCiAgICB3aW50X3QgX193Y2g7DQogICAgY2hhciBf
X3djaGJbNF07DQogIH0gX192YWx1ZTsNCn0gX19tYnN0YXRlX3Q7DQojIDI1ICIvdXNyL2luY2x1
ZGUvX0dfY29uZmlnLmgiIDIgMw0KDQp0eXBlZGVmIHN0cnVjdA0Kew0KICBfX29mZl90IF9fcG9z
Ow0KICBfX21ic3RhdGVfdCBfX3N0YXRlOw0KfSBfR19mcG9zX3Q7DQp0eXBlZGVmIHN0cnVjdA0K
ew0KICBfX29mZjY0X3QgX19wb3M7DQogIF9fbWJzdGF0ZV90IF9fc3RhdGU7DQp9IF9HX2Zwb3M2
NF90Ow0KIyA0NCAiL3Vzci9pbmNsdWRlL19HX2NvbmZpZy5oIiAzDQojIDEgIi91c3IvaW5jbHVk
ZS9nY29udi5oIiAxIDMNCiMgMjYgIi91c3IvaW5jbHVkZS9nY29udi5oIiAzDQojIDEgIi91c3Iv
aW5jbHVkZS9mZWF0dXJlcy5oIiAxIDMNCiMgMjcgIi91c3IvaW5jbHVkZS9nY29udi5oIiAyIDMN
Cg0KIyAxICIvdXNyL2luY2x1ZGUvd2NoYXIuaCIgMSAzDQojIDQ4ICIvdXNyL2luY2x1ZGUvd2No
YXIuaCIgMw0KIyAxICIvdXNyL2xpYi9nY2MtbGliL2kzODYtcmVkaGF0LWxpbnV4LzIuOTYvaW5j
bHVkZS9zdGRkZWYuaCIgMSAzDQojIDQ5ICIvdXNyL2luY2x1ZGUvd2NoYXIuaCIgMiAzDQoNCiMg
MSAiL3Vzci9pbmNsdWRlL2JpdHMvd2NoYXIuaCIgMSAzDQojIDUxICIvdXNyL2luY2x1ZGUvd2No
YXIuaCIgMiAzDQojIDI5ICIvdXNyL2luY2x1ZGUvZ2NvbnYuaCIgMiAzDQoNCiMgMSAiL3Vzci9s
aWIvZ2NjLWxpYi9pMzg2LXJlZGhhdC1saW51eC8yLjk2L2luY2x1ZGUvc3RkZGVmLmgiIDEgMw0K
IyAzMSAiL3Vzci9pbmNsdWRlL2djb252LmgiIDIgMw0KDQoNCg0KDQoNCmVudW0NCnsNCiAgX19H
Q09OVl9PSyA9IDAsDQogIF9fR0NPTlZfTk9DT05WLA0KICBfX0dDT05WX05PREIsDQogIF9fR0NP
TlZfTk9NRU0sDQoNCiAgX19HQ09OVl9FTVBUWV9JTlBVVCwNCiAgX19HQ09OVl9GVUxMX09VVFBV
VCwNCiAgX19HQ09OVl9JTExFR0FMX0lOUFVULA0KICBfX0dDT05WX0lOQ09NUExFVEVfSU5QVVQs
DQoNCiAgX19HQ09OVl9JTExFR0FMX0RFU0NSSVBUT1IsDQogIF9fR0NPTlZfSU5URVJOQUxfRVJS
T1INCn07DQoNCg0KDQplbnVtDQp7DQogIF9fR0NPTlZfSVNfTEFTVCA9IDB4MDAwMSwNCiAgX19H
Q09OVl9JR05PUkVfRVJST1JTID0gMHgwMDAyDQp9Ow0KDQoNCg0Kc3RydWN0IF9fZ2NvbnZfc3Rl
cDsNCnN0cnVjdCBfX2djb252X3N0ZXBfZGF0YTsNCnN0cnVjdCBfX2djb252X2xvYWRlZF9vYmpl
Y3Q7DQpzdHJ1Y3QgX19nY29udl90cmFuc19kYXRhOw0KDQoNCg0KdHlwZWRlZiBpbnQgKCpfX2dj
b252X2ZjdCkgKHN0cnVjdCBfX2djb252X3N0ZXAgKiwgc3RydWN0IF9fZ2NvbnZfc3RlcF9kYXRh
ICosDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgX19jb25zdCB1bnNpZ25lZCBjaGFyICoq
LCBfX2NvbnN0IHVuc2lnbmVkIGNoYXIgKiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBjaGFyICoqLCBzaXplX3QgKiwgaW50LCBpbnQpOw0KDQoNCnR5cGVkZWYgaW50ICgq
X19nY29udl9pbml0X2ZjdCkgKHN0cnVjdCBfX2djb252X3N0ZXAgKik7DQp0eXBlZGVmIHZvaWQg
KCpfX2djb252X2VuZF9mY3QpIChzdHJ1Y3QgX19nY29udl9zdGVwICopOw0KDQoNCg0KdHlwZWRl
ZiBpbnQgKCpfX2djb252X3RyYW5zX2ZjdCkgKHN0cnVjdCBfX2djb252X3N0ZXAgKiwNCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgX19nY29udl9zdGVwX2RhdGEgKiwg
dm9pZCAqLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3QgdW5zaWdu
ZWQgY2hhciAqLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3QgdW5z
aWduZWQgY2hhciAqKiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2NvbnN0
IHVuc2lnbmVkIGNoYXIgKiwgdW5zaWduZWQgY2hhciAqKiwNCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaXplX3QgKik7DQoNCg0KdHlwZWRlZiBpbnQgKCpfX2djb252X3RyYW5z
X2NvbnRleHRfZmN0KSAodm9pZCAqLCBfX2NvbnN0IHVuc2lnbmVkIGNoYXIgKiwNCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3QgdW5zaWduZWQgY2hhciAq
LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hh
ciAqLCB1bnNpZ25lZCBjaGFyICopOw0KDQoNCnR5cGVkZWYgaW50ICgqX19nY29udl90cmFuc19x
dWVyeV9mY3QpIChfX2NvbnN0IGNoYXIgKiwgX19jb25zdCBjaGFyICoqKiwNCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKik7DQoNCg0KdHlwZWRlZiBpbnQg
KCpfX2djb252X3RyYW5zX2luaXRfZmN0KSAodm9pZCAqKiwgY29uc3QgY2hhciAqKTsNCnR5cGVk
ZWYgdm9pZCAoKl9fZ2NvbnZfdHJhbnNfZW5kX2ZjdCkgKHZvaWQgKik7DQoNCnN0cnVjdCBfX2dj
b252X3RyYW5zX2RhdGENCnsNCg0KICBfX2djb252X3RyYW5zX2ZjdCBfX3RyYW5zX2ZjdDsNCiAg
X19nY29udl90cmFuc19jb250ZXh0X2ZjdCBfX3RyYW5zX2NvbnRleHRfZmN0Ow0KICBfX2djb252
X3RyYW5zX2VuZF9mY3QgX190cmFuc19lbmRfZmN0Ow0KICB2b2lkICpfX2RhdGE7DQogIHN0cnVj
dCBfX2djb252X3RyYW5zX2RhdGEgKl9fbmV4dDsNCn07DQoNCg0KDQpzdHJ1Y3QgX19nY29udl9z
dGVwDQp7DQogIHN0cnVjdCBfX2djb252X2xvYWRlZF9vYmplY3QgKl9fc2hsaWJfaGFuZGxlOw0K
ICBfX2NvbnN0IGNoYXIgKl9fbW9kbmFtZTsNCg0KICBpbnQgX19jb3VudGVyOw0KDQogIGNoYXIg
Kl9fZnJvbV9uYW1lOw0KICBjaGFyICpfX3RvX25hbWU7DQoNCiAgX19nY29udl9mY3QgX19mY3Q7
DQogIF9fZ2NvbnZfaW5pdF9mY3QgX19pbml0X2ZjdDsNCiAgX19nY29udl9lbmRfZmN0IF9fZW5k
X2ZjdDsNCg0KDQoNCiAgaW50IF9fbWluX25lZWRlZF9mcm9tOw0KICBpbnQgX19tYXhfbmVlZGVk
X2Zyb207DQogIGludCBfX21pbl9uZWVkZWRfdG87DQogIGludCBfX21heF9uZWVkZWRfdG87DQoN
Cg0KICBpbnQgX19zdGF0ZWZ1bDsNCg0KICB2b2lkICpfX2RhdGE7DQp9Ow0KDQoNCg0Kc3RydWN0
IF9fZ2NvbnZfc3RlcF9kYXRhDQp7DQogIHVuc2lnbmVkIGNoYXIgKl9fb3V0YnVmOw0KICB1bnNp
Z25lZCBjaGFyICpfX291dGJ1ZmVuZDsNCg0KDQoNCiAgaW50IF9fZmxhZ3M7DQoNCg0KDQogIGlu
dCBfX2ludm9jYXRpb25fY291bnRlcjsNCg0KDQoNCiAgaW50IF9faW50ZXJuYWxfdXNlOw0KDQog
IF9fbWJzdGF0ZV90ICpfX3N0YXRlcDsNCiAgX19tYnN0YXRlX3QgX19zdGF0ZTsNCg0KDQoNCiAg
c3RydWN0IF9fZ2NvbnZfdHJhbnNfZGF0YSAqX190cmFuczsNCn07DQoNCg0KDQp0eXBlZGVmIHN0
cnVjdCBfX2djb252X2luZm8NCnsNCiAgc2l6ZV90IF9fbnN0ZXBzOw0KICBzdHJ1Y3QgX19nY29u
dl9zdGVwICpfX3N0ZXBzOw0KICBfX2V4dGVuc2lvbl9fIHN0cnVjdCBfX2djb252X3N0ZXBfZGF0
YSBfX2RhdGEgWzBdOw0KfSAqX19nY29udl90Ow0KIyA0NSAiL3Vzci9pbmNsdWRlL19HX2NvbmZp
Zy5oIiAyIDMNCnR5cGVkZWYgdW5pb24NCnsNCiAgc3RydWN0IF9fZ2NvbnZfaW5mbyBfX2NkOw0K
ICBzdHJ1Y3QNCiAgew0KICAgIHN0cnVjdCBfX2djb252X2luZm8gX19jZDsNCiAgICBzdHJ1Y3Qg
X19nY29udl9zdGVwX2RhdGEgX19kYXRhOw0KICB9IF9fY29tYmluZWQ7DQp9IF9HX2ljb252X3Q7
DQoNCnR5cGVkZWYgaW50IF9HX2ludDE2X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0hJ
X18pKSk7DQp0eXBlZGVmIGludCBfR19pbnQzMl90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAo
X19TSV9fKSkpOw0KdHlwZWRlZiB1bnNpZ25lZCBpbnQgX0dfdWludDE2X3QgX19hdHRyaWJ1dGVf
XyAoKF9fbW9kZV9fIChfX0hJX18pKSk7DQp0eXBlZGVmIHVuc2lnbmVkIGludCBfR191aW50MzJf
dCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fU0lfXykpKTsNCiMgMzEgIi91c3IvaW5jbHVk
ZS9saWJpby5oIiAyIDMNCiMgNTEgIi91c3IvaW5jbHVkZS9saWJpby5oIiAzDQojIDEgIi91c3Iv
bGliL2djYy1saWIvaTM4Ni1yZWRoYXQtbGludXgvMi45Ni9pbmNsdWRlL3N0ZGFyZy5oIiAxIDMN
CiMgNDMgIi91c3IvbGliL2djYy1saWIvaTM4Ni1yZWRoYXQtbGludXgvMi45Ni9pbmNsdWRlL3N0
ZGFyZy5oIiAzDQp0eXBlZGVmIF9fYnVpbHRpbl92YV9saXN0IF9fZ251Y192YV9saXN0Ow0KIyA1
MiAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDIgMw0KIyAxNTggIi91c3IvaW5jbHVkZS9saWJpby5o
IiAzDQpzdHJ1Y3QgX0lPX2p1bXBfdDsgc3RydWN0IF9JT19GSUxFOw0KIyAxNjggIi91c3IvaW5j
bHVkZS9saWJpby5oIiAzDQp0eXBlZGVmIHZvaWQgX0lPX2xvY2tfdDsNCg0KDQoNCg0KDQpzdHJ1
Y3QgX0lPX21hcmtlciB7DQogIHN0cnVjdCBfSU9fbWFya2VyICpfbmV4dDsNCiAgc3RydWN0IF9J
T19GSUxFICpfc2J1ZjsNCg0KDQoNCiAgaW50IF9wb3M7DQojIDE5MSAiL3Vzci9pbmNsdWRlL2xp
YmlvLmgiIDMNCn07DQoNCg0KZW51bSBfX2NvZGVjdnRfcmVzdWx0DQp7DQogIF9fY29kZWN2dF9v
aywNCiAgX19jb2RlY3Z0X3BhcnRpYWwsDQogIF9fY29kZWN2dF9lcnJvciwNCiAgX19jb2RlY3Z0
X25vY29udg0KfTsNCiMgMjU5ICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMw0Kc3RydWN0IF9JT19G
SUxFIHsNCiAgaW50IF9mbGFnczsNCg0KDQoNCg0KICBjaGFyKiBfSU9fcmVhZF9wdHI7DQogIGNo
YXIqIF9JT19yZWFkX2VuZDsNCiAgY2hhciogX0lPX3JlYWRfYmFzZTsNCiAgY2hhciogX0lPX3dy
aXRlX2Jhc2U7DQogIGNoYXIqIF9JT193cml0ZV9wdHI7DQogIGNoYXIqIF9JT193cml0ZV9lbmQ7
DQogIGNoYXIqIF9JT19idWZfYmFzZTsNCiAgY2hhciogX0lPX2J1Zl9lbmQ7DQoNCiAgY2hhciAq
X0lPX3NhdmVfYmFzZTsNCiAgY2hhciAqX0lPX2JhY2t1cF9iYXNlOw0KICBjaGFyICpfSU9fc2F2
ZV9lbmQ7DQoNCiAgc3RydWN0IF9JT19tYXJrZXIgKl9tYXJrZXJzOw0KDQogIHN0cnVjdCBfSU9f
RklMRSAqX2NoYWluOw0KDQogIGludCBfZmlsZW5vOw0KICBpbnQgX2Jsa3NpemU7DQogIF9fb2Zm
X3QgX29sZF9vZmZzZXQ7DQoNCg0KDQogIHVuc2lnbmVkIHNob3J0IF9jdXJfY29sdW1uOw0KICBz
aWduZWQgY2hhciBfdnRhYmxlX29mZnNldDsNCiAgY2hhciBfc2hvcnRidWZbMV07DQoNCg0KDQog
IF9JT19sb2NrX3QgKl9sb2NrOw0KIyAzMDMgIi91c3IvaW5jbHVkZS9saWJpby5oIiAzDQogIF9f
b2ZmNjRfdCBfb2Zmc2V0Ow0KDQoNCg0KDQoNCiAgdm9pZCAqX19wYWQxOw0KICB2b2lkICpfX3Bh
ZDI7DQoNCiAgaW50IF9tb2RlOw0KDQogIGNoYXIgX3VudXNlZDJbMTUgKiBzaXplb2YgKGludCkg
LSAyICogc2l6ZW9mICh2b2lkICopXTsNCg0KfTsNCg0KDQp0eXBlZGVmIHN0cnVjdCBfSU9fRklM
RSBfSU9fRklMRTsNCg0KDQpzdHJ1Y3QgX0lPX0ZJTEVfcGx1czsNCg0KZXh0ZXJuIHN0cnVjdCBf
SU9fRklMRV9wbHVzIF9JT18yXzFfc3RkaW5fOw0KZXh0ZXJuIHN0cnVjdCBfSU9fRklMRV9wbHVz
IF9JT18yXzFfc3Rkb3V0XzsNCmV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEVfcGx1cyBfSU9fMl8xX3N0
ZGVycl87DQojIDM0MiAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMNCnR5cGVkZWYgX19zc2l6ZV90
IF9faW9fcmVhZF9mbiAodm9pZCAqX19jb29raWUsIGNoYXIgKl9fYnVmLCBzaXplX3QgX19uYnl0
ZXMpOw0KDQoNCg0KDQoNCg0KDQp0eXBlZGVmIF9fc3NpemVfdCBfX2lvX3dyaXRlX2ZuICh2b2lk
ICpfX2Nvb2tpZSwgX19jb25zdCBjaGFyICpfX2J1ZiwNCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVfdCBfX24pOw0KDQoNCg0KDQoNCg0KDQp0eXBlZGVmIGludCBfX2lvX3Nl
ZWtfZm4gKHZvaWQgKl9fY29va2llLCBfX29mZjY0X3QgKl9fcG9zLCBpbnQgX193KTsNCg0KDQp0
eXBlZGVmIGludCBfX2lvX2Nsb3NlX2ZuICh2b2lkICpfX2Nvb2tpZSk7DQojIDM5NCAiL3Vzci9p
bmNsdWRlL2xpYmlvLmgiIDMNCmV4dGVybiBpbnQgX191bmRlcmZsb3cgKF9JT19GSUxFICopIDsN
CmV4dGVybiBpbnQgX191ZmxvdyAoX0lPX0ZJTEUgKikgOw0KZXh0ZXJuIGludCBfX292ZXJmbG93
IChfSU9fRklMRSAqLCBpbnQpIDsNCmV4dGVybiB3aW50X3QgX193dW5kZXJmbG93IChfSU9fRklM
RSAqKSA7DQpleHRlcm4gd2ludF90IF9fd3VmbG93IChfSU9fRklMRSAqKSA7DQpleHRlcm4gd2lu
dF90IF9fd292ZXJmbG93IChfSU9fRklMRSAqLCB3aW50X3QpIDsNCiMgNDI0ICIvdXNyL2luY2x1
ZGUvbGliaW8uaCIgMw0KZXh0ZXJuIGludCBfSU9fZ2V0YyAoX0lPX0ZJTEUgKl9fZnApIDsNCmV4
dGVybiBpbnQgX0lPX3B1dGMgKGludCBfX2MsIF9JT19GSUxFICpfX2ZwKSA7DQpleHRlcm4gaW50
IF9JT19mZW9mIChfSU9fRklMRSAqX19mcCkgOw0KZXh0ZXJuIGludCBfSU9fZmVycm9yIChfSU9f
RklMRSAqX19mcCkgOw0KDQpleHRlcm4gaW50IF9JT19wZWVrY19sb2NrZWQgKF9JT19GSUxFICpf
X2ZwKSA7DQoNCg0KDQoNCg0KZXh0ZXJuIHZvaWQgX0lPX2Zsb2NrZmlsZSAoX0lPX0ZJTEUgKikg
Ow0KZXh0ZXJuIHZvaWQgX0lPX2Z1bmxvY2tmaWxlIChfSU9fRklMRSAqKSA7DQpleHRlcm4gaW50
IF9JT19mdHJ5bG9ja2ZpbGUgKF9JT19GSUxFICopIDsNCiMgNDU0ICIvdXNyL2luY2x1ZGUvbGli
aW8uaCIgMw0KZXh0ZXJuIGludCBfSU9fdmZzY2FuZiAoX0lPX0ZJTEUgKiBfX3Jlc3RyaWN0LCBj
b25zdCBjaGFyICogX19yZXN0cmljdCwNCiAgICAgICAgICAgICAgICAgICAgICAgIF9fZ251Y192
YV9saXN0LCBpbnQgKl9fcmVzdHJpY3QpIDsNCmV4dGVybiBpbnQgX0lPX3ZmcHJpbnRmIChfSU9f
RklMRSAqX19yZXN0cmljdCwgY29uc3QgY2hhciAqX19yZXN0cmljdCwNCiAgICAgICAgICAgICAg
ICAgICAgICAgICBfX2dudWNfdmFfbGlzdCkgOw0KZXh0ZXJuIF9fc3NpemVfdCBfSU9fcGFkbiAo
X0lPX0ZJTEUgKiwgaW50LCBfX3NzaXplX3QpIDsNCmV4dGVybiBzaXplX3QgX0lPX3NnZXRuIChf
SU9fRklMRSAqLCB2b2lkICosIHNpemVfdCkgOw0KDQpleHRlcm4gX19vZmY2NF90IF9JT19zZWVr
b2ZmIChfSU9fRklMRSAqLCBfX29mZjY0X3QsIGludCwgaW50KSA7DQpleHRlcm4gX19vZmY2NF90
IF9JT19zZWVrcG9zIChfSU9fRklMRSAqLCBfX29mZjY0X3QsIGludCkgOw0KDQpleHRlcm4gdm9p
ZCBfSU9fZnJlZV9iYWNrdXBfYXJlYSAoX0lPX0ZJTEUgKikgOw0KIyA2NSAiL3Vzci9pbmNsdWRl
L3N0ZGlvLmgiIDIgMw0KIyA3OSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMNCnR5cGVkZWYgX0df
ZnBvc190IGZwb3NfdDsNCiMgMTI4ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMw0KIyAxICIvdXNy
L2luY2x1ZGUvYml0cy9zdGRpb19saW0uaCIgMSAzDQojIDEyOSAiL3Vzci9pbmNsdWRlL3N0ZGlv
LmgiIDIgMw0KDQoNCg0KZXh0ZXJuIEZJTEUgKnN0ZGluOw0KZXh0ZXJuIEZJTEUgKnN0ZG91dDsN
CmV4dGVybiBGSUxFICpzdGRlcnI7DQojIDE0MyAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMNCmV4
dGVybiBpbnQgcmVtb3ZlIChfX2NvbnN0IGNoYXIgKl9fZmlsZW5hbWUpIDsNCg0KZXh0ZXJuIGlu
dCByZW5hbWUgKF9fY29uc3QgY2hhciAqX19vbGQsIF9fY29uc3QgY2hhciAqX19uZXcpIDsNCg0K
DQoNCg0KZXh0ZXJuIEZJTEUgKnRtcGZpbGUgKHZvaWQpIDsNCiMgMTYyICIvdXNyL2luY2x1ZGUv
c3RkaW8uaCIgMw0KZXh0ZXJuIGNoYXIgKnRtcG5hbSAoY2hhciAqX19zKSA7DQoNCg0KDQoNCmV4
dGVybiBjaGFyICp0bXBuYW1fciAoY2hhciAqX19zKSA7DQojIDE3OSAiL3Vzci9pbmNsdWRlL3N0
ZGlvLmgiIDMNCmV4dGVybiBjaGFyICp0ZW1wbmFtIChfX2NvbnN0IGNoYXIgKl9fZGlyLCBfX2Nv
bnN0IGNoYXIgKl9fcGZ4KQ0KICAgICAgICAgICAgIF9fYXR0cmlidXRlX18gKChfX21hbGxvY19f
KSk7DQoNCg0KDQoNCmV4dGVybiBpbnQgZmNsb3NlIChGSUxFICpfX3N0cmVhbSkgOw0KDQpleHRl
cm4gaW50IGZmbHVzaCAoRklMRSAqX19zdHJlYW0pIDsNCg0KDQoNCmV4dGVybiBpbnQgZmZsdXNo
X3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSkgOw0KIyAyMDIgIi91c3IvaW5jbHVkZS9zdGRpby5o
IiAzDQpleHRlcm4gRklMRSAqZm9wZW4gKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2ZpbGVu
YW1lLA0KICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19tb2Rl
cykgOw0KDQpleHRlcm4gRklMRSAqZnJlb3BlbiAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9f
ZmlsZW5hbWUsDQogICAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0
IF9fbW9kZXMsDQogICAgICAgICAgICAgICAgICAgICAgRklMRSAqX19yZXN0cmljdCBfX3N0cmVh
bSkgOw0KIyAyMzIgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzDQpleHRlcm4gRklMRSAqZmRvcGVu
IChpbnQgX19mZCwgX19jb25zdCBjaGFyICpfX21vZGVzKSA7DQojIDI1NSAiL3Vzci9pbmNsdWRl
L3N0ZGlvLmgiIDMNCmV4dGVybiB2b2lkIHNldGJ1ZiAoRklMRSAqX19yZXN0cmljdCBfX3N0cmVh
bSwgY2hhciAqX19yZXN0cmljdCBfX2J1ZikgOw0KDQoNCg0KZXh0ZXJuIGludCBzZXR2YnVmIChG
SUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLCBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLA0KICAgICAg
ICAgICAgICAgICAgICBpbnQgX19tb2Rlcywgc2l6ZV90IF9fbikgOw0KDQoNCg0KDQpleHRlcm4g
dm9pZCBzZXRidWZmZXIgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sIGNoYXIgKl9fcmVzdHJp
Y3QgX19idWYsDQogICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX3NpemUpIDsNCg0KDQpl
eHRlcm4gdm9pZCBzZXRsaW5lYnVmIChGSUxFICpfX3N0cmVhbSkgOw0KDQoNCg0KDQpleHRlcm4g
aW50IGZwcmludGYgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sDQogICAgICAgICAgICAgICAg
ICAgIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSA7DQoNCmV4dGVybiBp
bnQgcHJpbnRmIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikgOw0KDQpl
eHRlcm4gaW50IHNwcmludGYgKGNoYXIgKl9fcmVzdHJpY3QgX19zLA0KICAgICAgICAgICAgICAg
ICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikgOw0KDQoNCmV4dGVy
biBpbnQgdmZwcmludGYgKEZJTEUgKl9fcmVzdHJpY3QgX19zLCBfX2NvbnN0IGNoYXIgKl9fcmVz
dHJpY3QgX19mb3JtYXQsDQogICAgICAgICAgICAgICAgICAgICBfX2dudWNfdmFfbGlzdCBfX2Fy
ZykgOw0KDQpleHRlcm4gaW50IHZwcmludGYgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zv
cm1hdCwgX19nbnVjX3ZhX2xpc3QgX19hcmcpDQogICAgICAgICAgICA7DQoNCmV4dGVybiBpbnQg
dnNwcmludGYgKGNoYXIgKl9fcmVzdHJpY3QgX19zLCBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3Qg
X19mb3JtYXQsDQogICAgICAgICAgICAgICAgICAgICBfX2dudWNfdmFfbGlzdCBfX2FyZykgOw0K
DQoNCg0KZXh0ZXJuIGludCBzbnByaW50ZiAoY2hhciAqX19yZXN0cmljdCBfX3MsIHNpemVfdCBf
X21heGxlbiwNCiAgICAgICAgICAgICAgICAgICAgIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBf
X2Zvcm1hdCwgLi4uKQ0KICAgICAgICAgICAgIF9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChf
X3ByaW50Zl9fLCAzLCA0KSkpOw0KDQpleHRlcm4gaW50IHZzbnByaW50ZiAoY2hhciAqX19yZXN0
cmljdCBfX3MsIHNpemVfdCBfX21heGxlbiwNCiAgICAgICAgICAgICAgICAgICAgICBfX2NvbnN0
IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIF9fZ251Y192YV9saXN0IF9fYXJnKQ0KICAgICAg
ICAgICAgIF9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3ByaW50Zl9fLCAzLCAwKSkpOw0K
IyAzMjYgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzDQpleHRlcm4gaW50IGZzY2FuZiAoRklMRSAq
X19yZXN0cmljdCBfX3N0cmVhbSwNCiAgICAgICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIgKl9f
cmVzdHJpY3QgX19mb3JtYXQsIC4uLikgOw0KDQpleHRlcm4gaW50IHNjYW5mIChfX2NvbnN0IGNo
YXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikgOw0KDQpleHRlcm4gaW50IHNzY2FuZiAoX19j
b25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcywNCiAgICAgICAgICAgICAgICAgICBfX2NvbnN0IGNo
YXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikgOw0KIyAzNTIgIi91c3IvaW5jbHVkZS9zdGRp
by5oIiAzDQpleHRlcm4gaW50IGZnZXRjIChGSUxFICpfX3N0cmVhbSkgOw0KZXh0ZXJuIGludCBn
ZXRjIChGSUxFICpfX3N0cmVhbSkgOw0KDQoNCmV4dGVybiBpbnQgZ2V0Y2hhciAodm9pZCkgOw0K
DQoNCg0KDQoNCg0KDQpleHRlcm4gaW50IGdldGNfdW5sb2NrZWQgKEZJTEUgKl9fc3RyZWFtKSA7
DQpleHRlcm4gaW50IGdldGNoYXJfdW5sb2NrZWQgKHZvaWQpIDsNCg0KDQoNCg0KZXh0ZXJuIGlu
dCBmZ2V0Y191bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pIDsNCg0KDQoNCg0KZXh0ZXJuIGludCBm
cHV0YyAoaW50IF9fYywgRklMRSAqX19zdHJlYW0pIDsNCmV4dGVybiBpbnQgcHV0YyAoaW50IF9f
YywgRklMRSAqX19zdHJlYW0pIDsNCg0KDQpleHRlcm4gaW50IHB1dGNoYXIgKGludCBfX2MpIDsN
Cg0KDQoNCg0KDQoNCg0KZXh0ZXJuIGludCBmcHV0Y191bmxvY2tlZCAoaW50IF9fYywgRklMRSAq
X19zdHJlYW0pIDsNCg0KDQoNCg0KZXh0ZXJuIGludCBwdXRjX3VubG9ja2VkIChpbnQgX19jLCBG
SUxFICpfX3N0cmVhbSkgOw0KZXh0ZXJuIGludCBwdXRjaGFyX3VubG9ja2VkIChpbnQgX19jKSA7
DQoNCg0KDQoNCg0KZXh0ZXJuIGludCBnZXR3IChGSUxFICpfX3N0cmVhbSkgOw0KDQoNCmV4dGVy
biBpbnQgcHV0dyAoaW50IF9fdywgRklMRSAqX19zdHJlYW0pIDsNCg0KDQoNCg0KZXh0ZXJuIGNo
YXIgKmZnZXRzIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgaW50IF9fbiwgRklMRSAqX19yZXN0cmlj
dCBfX3N0cmVhbSkNCiAgICAgICAgICAgIDsNCiMgNDE4ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIg
Mw0KZXh0ZXJuIGNoYXIgKmdldHMgKGNoYXIgKl9fcykgOw0KIyA0NDIgIi91c3IvaW5jbHVkZS9z
dGRpby5oIiAzDQpleHRlcm4gaW50IGZwdXRzIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19z
LCBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKQ0KICAgICAgICAgICAgOw0KIyA0NTIgIi91c3Iv
aW5jbHVkZS9zdGRpby5oIiAzDQpleHRlcm4gaW50IHB1dHMgKF9fY29uc3QgY2hhciAqX19zKSA7
DQoNCg0KDQpleHRlcm4gaW50IHVuZ2V0YyAoaW50IF9fYywgRklMRSAqX19zdHJlYW0pIDsNCg0K
DQoNCmV4dGVybiBzaXplX3QgZnJlYWQgKHZvaWQgKl9fcmVzdHJpY3QgX19wdHIsIHNpemVfdCBf
X3NpemUsDQogICAgICAgICAgICAgICAgICAgICBzaXplX3QgX19uLCBGSUxFICpfX3Jlc3RyaWN0
IF9fc3RyZWFtKSA7DQoNCmV4dGVybiBzaXplX3QgZndyaXRlIChfX2NvbnN0IHZvaWQgKl9fcmVz
dHJpY3QgX19wdHIsIHNpemVfdCBfX3NpemUsDQogICAgICAgICAgICAgICAgICAgICAgc2l6ZV90
IF9fbiwgRklMRSAqX19yZXN0cmljdCBfX3MpIDsNCg0KDQoNCmV4dGVybiBzaXplX3QgZnJlYWRf
dW5sb2NrZWQgKHZvaWQgKl9fcmVzdHJpY3QgX19wdHIsIHNpemVfdCBfX3NpemUsDQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgX19uLCBGSUxFICpfX3Jlc3RyaWN0IF9fc3Ry
ZWFtKSA7DQpleHRlcm4gc2l6ZV90IGZ3cml0ZV91bmxvY2tlZCAoX19jb25zdCB2b2lkICpfX3Jl
c3RyaWN0IF9fcHRyLCBzaXplX3QgX19zaXplLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemVfdCBfX24sIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pIDsNCg0KDQoNCg0KZXh0
ZXJuIGludCBmc2VlayAoRklMRSAqX19zdHJlYW0sIGxvbmcgaW50IF9fb2ZmLCBpbnQgX193aGVu
Y2UpIDsNCg0KZXh0ZXJuIGxvbmcgaW50IGZ0ZWxsIChGSUxFICpfX3N0cmVhbSkgOw0KDQpleHRl
cm4gdm9pZCByZXdpbmQgKEZJTEUgKl9fc3RyZWFtKSA7DQojIDQ5NiAiL3Vzci9pbmNsdWRlL3N0
ZGlvLmgiIDMNCmV4dGVybiBpbnQgZmdldHBvcyAoRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwg
ZnBvc190ICpfX3Jlc3RyaWN0IF9fcG9zKQ0KICAgICAgICAgICAgOw0KDQpleHRlcm4gaW50IGZz
ZXRwb3MgKEZJTEUgKl9fc3RyZWFtLCBfX2NvbnN0IGZwb3NfdCAqX19wb3MpIDsNCiMgNTMyICIv
dXNyL2luY2x1ZGUvc3RkaW8uaCIgMw0KZXh0ZXJuIHZvaWQgY2xlYXJlcnIgKEZJTEUgKl9fc3Ry
ZWFtKSA7DQoNCmV4dGVybiBpbnQgZmVvZiAoRklMRSAqX19zdHJlYW0pIDsNCg0KZXh0ZXJuIGlu
dCBmZXJyb3IgKEZJTEUgKl9fc3RyZWFtKSA7DQoNCg0KDQpleHRlcm4gdm9pZCBjbGVhcmVycl91
bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pIDsNCmV4dGVybiBpbnQgZmVvZl91bmxvY2tlZCAoRklM
RSAqX19zdHJlYW0pIDsNCmV4dGVybiBpbnQgZmVycm9yX3VubG9ja2VkIChGSUxFICpfX3N0cmVh
bSkgOw0KDQoNCg0KDQpleHRlcm4gdm9pZCBwZXJyb3IgKF9fY29uc3QgY2hhciAqX19zKSA7DQoN
Cg0KDQoNCmV4dGVybiBpbnQgc3lzX25lcnI7DQpleHRlcm4gX19jb25zdCBjaGFyICpfX2NvbnN0
IHN5c19lcnJsaXN0W107DQojIDU2MyAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMNCmV4dGVybiBp
bnQgZmlsZW5vIChGSUxFICpfX3N0cmVhbSkgOw0KDQoNCg0KDQpleHRlcm4gaW50IGZpbGVub191
bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pIDsNCg0KDQoNCg0KDQoNCmV4dGVybiBGSUxFICpwb3Bl
biAoX19jb25zdCBjaGFyICpfX2NvbW1hbmQsIF9fY29uc3QgY2hhciAqX19tb2RlcykgOw0KDQoN
CmV4dGVybiBpbnQgcGNsb3NlIChGSUxFICpfX3N0cmVhbSkgOw0KDQoNCg0KDQoNCmV4dGVybiBj
aGFyICpjdGVybWlkIChjaGFyICpfX3MpIDsNCiMgNjEwICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIg
Mw0KZXh0ZXJuIHZvaWQgZmxvY2tmaWxlIChGSUxFICpfX3N0cmVhbSkgOw0KDQoNCg0KZXh0ZXJu
IGludCBmdHJ5bG9ja2ZpbGUgKEZJTEUgKl9fc3RyZWFtKSA7DQoNCg0KZXh0ZXJuIHZvaWQgZnVu
bG9ja2ZpbGUgKEZJTEUgKl9fc3RyZWFtKSA7DQojIDYzMSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgi
IDMNCiMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvc3RkaW8uaCIgMSAzDQojIDM5ICIvdXNyL2luY2x1
ZGUvYml0cy9zdGRpby5oIiAzDQpleHRlcm4gX19pbmxpbmUgaW50DQp2cHJpbnRmIChfX2NvbnN0
IGNoYXIgKl9fcmVzdHJpY3QgX19mbXQsIF9fZ251Y192YV9saXN0IF9fYXJnKQ0Kew0KICByZXR1
cm4gdmZwcmludGYgKHN0ZG91dCwgX19mbXQsIF9fYXJnKTsNCn0NCg0KDQpleHRlcm4gX19pbmxp
bmUgaW50DQpnZXRjaGFyICh2b2lkKQ0Kew0KICByZXR1cm4gX0lPX2dldGMgKHN0ZGluKTsNCn0N
Cg0KDQoNCg0KZXh0ZXJuIF9faW5saW5lIGludA0KZ2V0Y191bmxvY2tlZCAoRklMRSAqX19mcCkN
CnsNCiAgcmV0dXJuICgoX19mcCktPl9JT19yZWFkX3B0ciA+PSAoX19mcCktPl9JT19yZWFkX2Vu
ZCA/IF9fdWZsb3cgKF9fZnApIDogKih1bnNpZ25lZCBjaGFyICopIChfX2ZwKS0+X0lPX3JlYWRf
cHRyKyspOw0KfQ0KDQoNCmV4dGVybiBfX2lubGluZSBpbnQNCmdldGNoYXJfdW5sb2NrZWQgKHZv
aWQpDQp7DQogIHJldHVybiAoKHN0ZGluKS0+X0lPX3JlYWRfcHRyID49IChzdGRpbiktPl9JT19y
ZWFkX2VuZCA/IF9fdWZsb3cgKHN0ZGluKSA6ICoodW5zaWduZWQgY2hhciAqKSAoc3RkaW4pLT5f
SU9fcmVhZF9wdHIrKyk7DQp9DQoNCg0KDQoNCmV4dGVybiBfX2lubGluZSBpbnQNCnB1dGNoYXIg
KGludCBfX2MpDQp7DQogIHJldHVybiBfSU9fcHV0YyAoX19jLCBzdGRvdXQpOw0KfQ0KDQoNCg0K
DQpleHRlcm4gX19pbmxpbmUgaW50DQpmcHV0Y191bmxvY2tlZCAoaW50IF9fYywgRklMRSAqX19z
dHJlYW0pDQp7DQogIHJldHVybiAoKChfX3N0cmVhbSktPl9JT193cml0ZV9wdHIgPj0gKF9fc3Ry
ZWFtKS0+X0lPX3dyaXRlX2VuZCkgPyBfX292ZXJmbG93IChfX3N0cmVhbSwgKHVuc2lnbmVkIGNo
YXIpIChfX2MpKSA6ICh1bnNpZ25lZCBjaGFyKSAoKihfX3N0cmVhbSktPl9JT193cml0ZV9wdHIr
KyA9IChfX2MpKSk7DQp9DQoNCg0KDQoNCg0KZXh0ZXJuIF9faW5saW5lIGludA0KcHV0Y191bmxv
Y2tlZCAoaW50IF9fYywgRklMRSAqX19zdHJlYW0pDQp7DQogIHJldHVybiAoKChfX3N0cmVhbSkt
Pl9JT193cml0ZV9wdHIgPj0gKF9fc3RyZWFtKS0+X0lPX3dyaXRlX2VuZCkgPyBfX292ZXJmbG93
IChfX3N0cmVhbSwgKHVuc2lnbmVkIGNoYXIpIChfX2MpKSA6ICh1bnNpZ25lZCBjaGFyKSAoKihf
X3N0cmVhbSktPl9JT193cml0ZV9wdHIrKyA9IChfX2MpKSk7DQp9DQoNCg0KZXh0ZXJuIF9faW5s
aW5lIGludA0KcHV0Y2hhcl91bmxvY2tlZCAoaW50IF9fYykNCnsNCiAgcmV0dXJuICgoKHN0ZG91
dCktPl9JT193cml0ZV9wdHIgPj0gKHN0ZG91dCktPl9JT193cml0ZV9lbmQpID8gX19vdmVyZmxv
dyAoc3Rkb3V0LCAodW5zaWduZWQgY2hhcikgKF9fYykpIDogKHVuc2lnbmVkIGNoYXIpICgqKHN0
ZG91dCktPl9JT193cml0ZV9wdHIrKyA9IChfX2MpKSk7DQp9DQojIDExNyAiL3Vzci9pbmNsdWRl
L2JpdHMvc3RkaW8uaCIgMw0KZXh0ZXJuIF9faW5saW5lIGludA0KZmVvZl91bmxvY2tlZCAoRklM
RSAqX19zdHJlYW0pDQp7DQogIHJldHVybiAoKChfX3N0cmVhbSktPl9mbGFncyAmIDB4MTApICE9
IDApOw0KfQ0KDQoNCmV4dGVybiBfX2lubGluZSBpbnQNCmZlcnJvcl91bmxvY2tlZCAoRklMRSAq
X19zdHJlYW0pDQp7DQogIHJldHVybiAoKChfX3N0cmVhbSktPl9mbGFncyAmIDB4MjApICE9IDAp
Ow0KfQ0KIyA2MzIgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAyIDMNCiMgMyAidGVzdDEuYyIgMg0K
DQoNCg0KDQoNCmNvbnN0IGZsb2F0IEZBQ1RPUjE9LjFGOw0KY29uc3QgZmxvYXQgRkFDVE9SMj0u
NUY7DQoNCnZvaWQgbWFuaXB1bGF0ZShmbG9hdCBtYXRyaXhbXVsyMCArMV0sIGNvbnN0IHVuc2ln
bmVkIGludCByb3cpOw0KDQppbnQgbWFpbih2b2lkKQ0Kew0KICAgICB1bnNpZ25lZCBpbnQgaTsN
CiAgICAgZmxvYXQgZm1hdHJpeFsxXVsyMCArMV07DQoNCiAgICAgZm9yKGk9MDtpPDIwICsxO2kr
KykgZm1hdHJpeFswXVtpXT0oZmxvYXQpaTsNCg0KICAgICBtYW5pcHVsYXRlKGZtYXRyaXgsMCk7
DQoNCiAgICAgZm9yKGk9MDtpPDIwICsxO2krKykgcHJpbnRmKCIlZiAiLGZtYXRyaXhbMF1baV0p
Ow0KDQogICAgIHByaW50ZigiXG4iKTsNCg0KICAgICByZXR1cm4gMDsNCn0NCg0Kdm9pZCBtYW5p
cHVsYXRlKGZsb2F0IG1hdHJpeFtdWzIwICsxXSwgY29uc3QgdW5zaWduZWQgaW50IHJvdykNCnsN
CiAgICAgdW5zaWduZWQgaW50IGk7DQogICAgIHVuc2lnbmVkIGludCBzaXplX3hkMjsNCg0KICAg
ICBzaXplX3hkMj0oMjAvMik7DQoNCiAgICAgZm9yKGk9MztpPHNpemVfeGQyLTE7aSs9MikgbWF0
cml4W3Jvd11baV09RkFDVE9SMSoobWF0cml4W3Jvd11baS0xXSttYXRyaXhbcm93XVtpKzFdKQ0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtRkFDVE9SMioo
bWF0cml4W3Jvd11baS0zXSttYXRyaXhbcm93XVtpKzNdKTsNCg0KICAgICBmb3IoaT1zaXplX3hk
MiszO2k8MjAgLTM7aSs9MikgbWF0cml4W3Jvd11baV09RkFDVE9SMSoobWF0cml4W3Jvd11baS0x
XSttYXRyaXhbcm93XVtpKzFdKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLUZBQ1RPUjIqKG1hdHJpeFtyb3ddW2ktM10rbWF0cml4W3Jvd11b
aSszXSk7DQp9DQo=



More information about the Gcc-bugs mailing list