c++/7296: Internal compiler error when getting a pointer to a templated function inside a templated class

ronny@mit.edu ronny@mit.edu
Fri Jul 12 14:40:00 GMT 2002


>Number:         7296
>Category:       c++
>Synopsis:       Internal compiler error when getting a pointer to a templated function inside a templated class
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Jul 12 14:36:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     ronny@mit.edu
>Release:        2.95.3 20010315
>Organization:
>Environment:
linux, x86
>Description:

bug.cc: In function `int main()':
bug.cc:19: Internal compiler error 56.
bug.cc:19: Please submit a full bug report.
bug.cc:19: See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
>How-To-Repeat:
compile this:


template <int a>
class A {
public:
  
  template <int f>
  static int foo() {
    return a+f;
  };

};

int main() {

  typedef int (*FUNC_TYPE) ();

  
  FUNC_TYPE pfunc = A<1>::foo<2>;

  int x = pfunc();  

  return 0;
};
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="bug.ii"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="bug.ii"

IyAxICJidWcuY2MiCiMgMSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDEgMwogCgoKCgoKCgoKCgoK
CgoKCgoKCiAKCgoKCgoKCiMgMSAiL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmgiIDEgMwogCgoKCgoK
CgoKCgoKCgoKCgoKCgoKIAoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCgoKCgoKCgoKCgoKCiAKCgoKCgoKCgoKCgoKCgoKCgoKCgogCgoKCgoKIAoKCgog
CgoKCgoKCgogCiMgMTQyICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMwoKCiAKCgoKCgoKCgoK
IAoKCgoKCgoKCiAKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKIyAyMDggIi91c3IvaW5jbHVk
ZS9mZWF0dXJlcy5oIiAzCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgogCgoKCiAK
CgogCgoKCgoKCgoKIAoKCgoKIAoKCgoKCgoKCgoKCgoKCgoKIAoKCiMgMSAiL3Vzci9pbmNsdWRl
L3N5cy9jZGVmcy5oIiAxIDMKIAoKCgoKCgoKCgoKCgoKCgoKCgoKCiAKCgoKCiAKCgoKCgoKIAoK
CgoKCiAKCgoKCgoKCgogCgoKCiMgNjUgIi91c3IvaW5jbHVkZS9zeXMvY2RlZnMuaCIgMwoKCiAK
CgoKCgogCgoKCgogCgoKCgoKCgoKCiAKCgoKCgoKCiAKCgoKCgoKCgoKCgoKCgoKCgogCgoKCgoK
CgoKCgoKCgoKCiAKCgoKCgoKCiAKCgoKCgoKIAoKCgoKCgoKCiAKCgoKCgoKCgogCgoKCgoKCgoK
CgoKIAoKCgoKCgoKCgoKIAoKCgoKCgoKIAoKCgoKIAoKCgoKCgoKCgoKCgoKCgoKCgojIDI4MyAi
L3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmgiIDIgMwoKCgogCgoKCgoKCgoKIAoKCgoKCiAKCiAKCgoK
CgoKCgojIDEgIi91c3IvaW5jbHVkZS9nbnUvc3R1YnMuaCIgMSAzCiAKCgoKCgoKCgoKCgoKCgoK
CgoKCiMgMzEyICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMiAzCgoKCgojIDI4ICIvdXNyL2lu
Y2x1ZGUvc3RkaW8uaCIgMiAzCgoKZXh0ZXJuICJDIiB7IAoKCgojIDEgIi91c3IvdW5zL2djYy0y
Ljk1LjMvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVm
LmgiIDEgMwoKCgoKCgogCgoKIyAxOSAiL3Vzci91bnMvZ2NjLTIuOTUuMy9saWIvZ2NjLWxpYi9p
Njg2LXBjLWxpbnV4LWdudS8yLjk1LjMvaW5jbHVkZS9zdGRkZWYuaCIgMwoKCgogCgoKIAoKCgoK
CiAKCgojIDYxICIvdXNyL3Vucy9nY2MtMi45NS4zL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgt
Z251LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzCgoKIAoKCgoKCiAKCgoKCgoKCgoKCgoKCgoK
CgoKIAoKCgoKCiAKCiAKCiMgMTMxICIvdXNyL3Vucy9nY2MtMi45NS4zL2xpYi9nY2MtbGliL2k2
ODYtcGMtbGludXgtZ251LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzCgoKIAoKIAoKCgoKCgoK
CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKdHlwZWRlZiB1bnNpZ25lZCBpbnQgc2l6ZV90OwoK
CgoKCgoKCgoKCgoKCgoKCgoKCgoKIAoKCgoKIAoKIyAyNzEgIi91c3IvdW5zL2djYy0yLjk1LjMv
bGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMK
CgojIDI4MyAiL3Vzci91bnMvZ2NjLTIuOTUuMy9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdu
dS8yLjk1LjMvaW5jbHVkZS9zdGRkZWYuaCIgMwoKCiAKCiAKCiMgMzE3ICIvdXNyL3Vucy9nY2Mt
Mi45NS4zL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzIuOTUuMy9pbmNsdWRlL3N0ZGRl
Zi5oIiAzCgoKCgogCgoKCgoKCgoKCgoKCgoKCgoKCgoKCiMgMzQgIi91c3IvaW5jbHVkZS9zdGRp
by5oIiAyIDMKCgojIDEgIi91c3IvaW5jbHVkZS9iaXRzL3R5cGVzLmgiIDEgMwogCgoKCgoKCgoK
CgoKCgoKCgoKIAoKCgoKCgoKCgojIDEgIi91c3IvdW5zL2djYy0yLjk1LjMvbGliL2djYy1saWIv
aTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDEgMwoKCgoKCgogCgoK
IyAxOSAiL3Vzci91bnMvZ2NjLTIuOTUuMy9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8y
Ljk1LjMvaW5jbHVkZS9zdGRkZWYuaCIgMwoKCgogCgoKIAoKCgoKCiAKCgojIDYxICIvdXNyL3Vu
cy9nY2MtMi45NS4zL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzIuOTUuMy9pbmNsdWRl
L3N0ZGRlZi5oIiAzCgoKIAoKCgoKCiAKCgoKCgoKCgoKCgoKCgoKCgoKIAoKCgoKCiAKCiAKCiMg
MTMxICIvdXNyL3Vucy9nY2MtMi45NS4zL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzIu
OTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzCgoKIAoKIAoKCiMgMTg4ICIvdXNyL3Vucy9nY2MtMi45
NS4zL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5o
IiAzCgoKCgoKIAoKCgoKIAoKIyAyNzEgIi91c3IvdW5zL2djYy0yLjk1LjMvbGliL2djYy1saWIv
aTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMKCgojIDI4MyAiL3Vz
ci91bnMvZ2NjLTIuOTUuMy9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8yLjk1LjMvaW5j
bHVkZS9zdGRkZWYuaCIgMwoKCiAKCiAKCiMgMzE3ICIvdXNyL3Vucy9nY2MtMi45NS4zL2xpYi9n
Y2MtbGliL2k2ODYtcGMtbGludXgtZ251LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzCgoKCgog
CgoKCgoKCgoKCgoKCgoKCgoKCgoKCiMgMjkgIi91c3IvaW5jbHVkZS9iaXRzL3R5cGVzLmgiIDIg
MwoKCiAKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIF9fdV9jaGFyOwp0eXBlZGVmIHVuc2lnbmVkIHNo
b3J0IF9fdV9zaG9ydDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgX191X2ludDsKdHlwZWRlZiB1bnNp
Z25lZCBsb25nIF9fdV9sb25nOwoKX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGxvbmcg
bG9uZyBpbnQgX191X3F1YWRfdDsKX19leHRlbnNpb25fXyB0eXBlZGVmIGxvbmcgbG9uZyBpbnQg
X19xdWFkX3Q7CiMgNDggIi91c3IvaW5jbHVkZS9iaXRzL3R5cGVzLmgiIDMKCnR5cGVkZWYgc2ln
bmVkIGNoYXIgX19pbnQ4X3Q7CnR5cGVkZWYgdW5zaWduZWQgY2hhciBfX3VpbnQ4X3Q7CnR5cGVk
ZWYgc2lnbmVkIHNob3J0IGludCBfX2ludDE2X3Q7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgaW50
IF9fdWludDE2X3Q7CnR5cGVkZWYgc2lnbmVkIGludCBfX2ludDMyX3Q7CnR5cGVkZWYgdW5zaWdu
ZWQgaW50IF9fdWludDMyX3Q7CgpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgc2lnbmVkIGxvbmcgbG9u
ZyBpbnQgX19pbnQ2NF90OwpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25n
IGludCBfX3VpbnQ2NF90OwoKdHlwZWRlZiBfX3F1YWRfdCAqX19xYWRkcl90OwoKdHlwZWRlZiBf
X3VfcXVhZF90IF9fZGV2X3Q7CQkgCnR5cGVkZWYgX191X2ludCBfX3VpZF90OwkJIAp0eXBlZGVm
IF9fdV9pbnQgX19naWRfdDsJCSAKdHlwZWRlZiBfX3VfbG9uZyBfX2lub190OwkJIAp0eXBlZGVm
IF9fdV9pbnQgX19tb2RlX3Q7CQkgCnR5cGVkZWYgX191X2ludCBfX25saW5rX3Q7IAkJIAp0eXBl
ZGVmIGxvbmcgaW50IF9fb2ZmX3Q7CQkgCnR5cGVkZWYgX19xdWFkX3QgX19sb2ZmX3Q7CQkgCnR5
cGVkZWYgaW50IF9fcGlkX3Q7CQkJIAp0eXBlZGVmIGludCBfX3NzaXplX3Q7CQkJIAp0eXBlZGVm
IF9fdV9sb25nIF9fcmxpbV90OwkJIAp0eXBlZGVmIF9fdV9xdWFkX3QgX19ybGltNjRfdDsJCSAK
dHlwZWRlZiBfX3VfaW50IF9faWRfdDsJCQkgCgp0eXBlZGVmIHN0cnVjdAogIHsKICAgIGludCBf
X3ZhbFsyXTsKICB9IF9fZnNpZF90OwkJCQkgCgogCnR5cGVkZWYgaW50IF9fZGFkZHJfdDsJCQkg
CnR5cGVkZWYgY2hhciAqX19jYWRkcl90Owp0eXBlZGVmIGxvbmcgaW50IF9fdGltZV90Owp0eXBl
ZGVmIHVuc2lnbmVkIGludCBfX3VzZWNvbmRzX3Q7CnR5cGVkZWYgbG9uZyBpbnQgX19zdXNlY29u
ZHNfdDsKdHlwZWRlZiBsb25nIGludCBfX3N3YmxrX3Q7CQkgCgwKdHlwZWRlZiBsb25nIGludCBf
X2Nsb2NrX3Q7CgogCnR5cGVkZWYgaW50IF9fY2xvY2tpZF90OwoKIAp0eXBlZGVmIGludCBfX3Rp
bWVyX3Q7CgoKIAoKCgp0eXBlZGVmIGludCBfX2tleV90OwoKIAp0eXBlZGVmIHVuc2lnbmVkIHNo
b3J0IGludCBfX2lwY19waWRfdDsKCgogCnR5cGVkZWYgbG9uZyBpbnQgX19ibGtzaXplX3Q7Cgog
CgogCnR5cGVkZWYgbG9uZyBpbnQgX19ibGtjbnRfdDsKdHlwZWRlZiBfX3F1YWRfdCBfX2Jsa2Nu
dDY0X3Q7CgogCnR5cGVkZWYgX191X2xvbmcgX19mc2Jsa2NudF90Owp0eXBlZGVmIF9fdV9xdWFk
X3QgX19mc2Jsa2NudDY0X3Q7CgogCnR5cGVkZWYgX191X2xvbmcgX19mc2ZpbGNudF90Owp0eXBl
ZGVmIF9fdV9xdWFkX3QgX19mc2ZpbGNudDY0X3Q7CgogCnR5cGVkZWYgX191X3F1YWRfdCBfX2lu
bzY0X3Q7CgogCnR5cGVkZWYgX19sb2ZmX3QgX19vZmY2NF90OwoKIAp0eXBlZGVmIGxvbmcgaW50
IF9fdF9zY2FsYXJfdDsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBfX3RfdXNjYWxhcl90OwoK
IAp0eXBlZGVmIGludCBfX2ludHB0cl90OwoKIAp0eXBlZGVmIHVuc2lnbmVkIGludCBfX3NvY2ts
ZW5fdDsKCgogCgojIDEgIi91c3IvaW5jbHVkZS9iaXRzL3B0aHJlYWR0eXBlcy5oIiAxIDMKIAog
CiAKIAogCiAKIAogCiAKIAogCiAKIAoKCgoKCgoKCgojIDEgIi91c3IvaW5jbHVkZS9iaXRzL3Nj
aGVkLmgiIDEgMwogCgoKCgoKCgoKCgoKCgoKCgoKCgojIDYyICIvdXNyL2luY2x1ZGUvYml0cy9z
Y2hlZC5oIiAzCgoKCgoKIApzdHJ1Y3QgX19zY2hlZF9wYXJhbQogIHsKICAgIGludCBfX3NjaGVk
X3ByaW9yaXR5OwogIH07CgoKIyAyMyAiL3Vzci9pbmNsdWRlL2JpdHMvcHRocmVhZHR5cGVzLmgi
IDIgMwoKCiAKc3RydWN0IF9wdGhyZWFkX2Zhc3Rsb2NrCnsKICBsb25nIGludCBfX3N0YXR1czsg
ICAgCiAgaW50IF9fc3BpbmxvY2s7ICAgICAgIAoKfTsKCgogCnR5cGVkZWYgc3RydWN0IF9wdGhy
ZWFkX2Rlc2NyX3N0cnVjdCAqX3B0aHJlYWRfZGVzY3I7CgoKCgogCnR5cGVkZWYgc3RydWN0IF9f
cHRocmVhZF9hdHRyX3MKewogIGludCBfX2RldGFjaHN0YXRlOwogIGludCBfX3NjaGVkcG9saWN5
OwogIHN0cnVjdCBfX3NjaGVkX3BhcmFtIF9fc2NoZWRwYXJhbTsKICBpbnQgX19pbmhlcml0c2No
ZWQ7CiAgaW50IF9fc2NvcGU7CiAgc2l6ZV90IF9fZ3VhcmRzaXplOwogIGludCBfX3N0YWNrYWRk
cl9zZXQ7CiAgdm9pZCAqX19zdGFja2FkZHI7CiAgc2l6ZV90IF9fc3RhY2tzaXplOwp9IHB0aHJl
YWRfYXR0cl90OwoKCiAKdHlwZWRlZiBzdHJ1Y3QKewogIHN0cnVjdCBfcHRocmVhZF9mYXN0bG9j
ayBfX2NfbG9jazsgIAogIF9wdGhyZWFkX2Rlc2NyIF9fY193YWl0aW5nOyAgICAgICAgIAp9IHB0
aHJlYWRfY29uZF90OwoKCiAKdHlwZWRlZiBzdHJ1Y3QKewogIGludCBfX2R1bW15Owp9IHB0aHJl
YWRfY29uZGF0dHJfdDsKCiAKdHlwZWRlZiB1bnNpZ25lZCBpbnQgcHRocmVhZF9rZXlfdDsKCgog
CiAKCnR5cGVkZWYgc3RydWN0CnsKICBpbnQgX19tX3Jlc2VydmVkOyAgICAgICAgICAgICAgICAK
ICBpbnQgX19tX2NvdW50OyAgICAgICAgICAgICAgICAgICAKICBfcHRocmVhZF9kZXNjciBfX21f
b3duZXI7ICAgICAgICAKICBpbnQgX19tX2tpbmQ7ICAgICAgICAgICAgICAgICAgICAKICBzdHJ1
Y3QgX3B0aHJlYWRfZmFzdGxvY2sgX19tX2xvY2s7ICAKfSBwdGhyZWFkX211dGV4X3Q7CgoKIAp0
eXBlZGVmIHN0cnVjdAp7CiAgaW50IF9fbXV0ZXhraW5kOwp9IHB0aHJlYWRfbXV0ZXhhdHRyX3Q7
CgoKIAp0eXBlZGVmIGludCBwdGhyZWFkX29uY2VfdDsKCgojIDExNyAiL3Vzci9pbmNsdWRlL2Jp
dHMvcHRocmVhZHR5cGVzLmgiIDMKCgojIDEzNiAiL3Vzci9pbmNsdWRlL2JpdHMvcHRocmVhZHR5
cGVzLmgiIDMKCgoKIAp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgaW50IHB0aHJlYWRfdDsKCgojIDE0
MyAiL3Vzci9pbmNsdWRlL2JpdHMvdHlwZXMuaCIgMiAzCgoKCgojIDM2ICIvdXNyL2luY2x1ZGUv
c3RkaW8uaCIgMiAzCgoKCgoKCgoKIAp0eXBlZGVmIHN0cnVjdCBfSU9fRklMRSBGSUxFOwoKCgoK
CgoKCiAKdHlwZWRlZiBzdHJ1Y3QgX0lPX0ZJTEUgX19GSUxFOwoKCgoKCgoKCgojIDEgIi91c3Iv
aW5jbHVkZS9saWJpby5oIiAxIDMKIAoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgojIDEg
Ii91c3IvaW5jbHVkZS9fR19jb25maWcuaCIgMSAzCiAKCgoKCgogCgoKCgoKCiMgMSAiL3Vzci91
bnMvZ2NjLTIuOTUuMy9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8yLjk1LjMvaW5jbHVk
ZS9zdGRkZWYuaCIgMSAzCgoKCgoKCiAKCgojIDE5ICIvdXNyL3Vucy9nY2MtMi45NS4zL2xpYi9n
Y2MtbGliL2k2ODYtcGMtbGludXgtZ251LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzCgoKCiAK
CgogCgoKCgoKIAoKCiMgNjEgIi91c3IvdW5zL2djYy0yLjk1LjMvbGliL2djYy1saWIvaTY4Ni1w
Yy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMKCgogCgoKCgoKIAoKCgoKCgoK
CgoKCgoKCgoKCgogCgoKCgoKIAoKIAoKIyAxMzEgIi91c3IvdW5zL2djYy0yLjk1LjMvbGliL2dj
Yy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMKCgogCgog
CgoKIyAxODggIi91c3IvdW5zL2djYy0yLjk1LjMvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1n
bnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMKCgoKCgogCgoKCgogCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCgoKCgoKIAoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCgp0eXBlZGVmIHVuc2lnbmVkIGludCAgd2ludF90OwoKCgoKIAoKIAoKIyAzMTcg
Ii91c3IvdW5zL2djYy0yLjk1LjMvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMi45NS4z
L2luY2x1ZGUvc3RkZGVmLmgiIDMKCgoKCiAKCgoKCgoKCgoKCgoKCgoKCgoKCgoKIyAxNCAiL3Vz
ci9pbmNsdWRlL19HX2NvbmZpZy5oIiAyIDMKCgoKCgoKCgoKCiMgMSAiL3Vzci9pbmNsdWRlL3dj
aGFyLmgiIDEgMwogCgoKCgoKCgoKCgoKCgoKCgoKIAoKCgoKCgoKCgoKCiMgNDYgIi91c3IvaW5j
bHVkZS93Y2hhci5oIiAzCgoKIyAxICIvdXNyL3Vucy9nY2MtMi45NS4zL2xpYi9nY2MtbGliL2k2
ODYtcGMtbGludXgtZ251LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMKCgoKCgoKIAoKCiMg
MTkgIi91c3IvdW5zL2djYy0yLjk1LjMvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMi45
NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMKCgoKIAoKCiAKCgoKCgogCgoKIyA2MSAiL3Vzci91bnMv
Z2NjLTIuOTUuMy9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8yLjk1LjMvaW5jbHVkZS9z
dGRkZWYuaCIgMwoKCiAKCgoKCgogCgoKCgoKCgoKCgoKCgoKCgoKCiAKCgoKCgogCgogCgojIDEz
MSAiL3Vzci91bnMvZ2NjLTIuOTUuMy9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8yLjk1
LjMvaW5jbHVkZS9zdGRkZWYuaCIgMwoKCiAKCiAKCiMgMTkwICIvdXNyL3Vucy9nY2MtMi45NS4z
L2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAz
CgoKCiAKCgoKCiAKCiMgMjcxICIvdXNyL3Vucy9nY2MtMi45NS4zL2xpYi9nY2MtbGliL2k2ODYt
cGMtbGludXgtZ251LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzCgoKCgoKCgoKCgoKCgoKIAoK
IAoKIyAzMTcgIi91c3IvdW5zL2djYy0yLjk1LjMvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1n
bnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMKCgoKCiAKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
IyA0OCAiL3Vzci9pbmNsdWRlL3djaGFyLmgiIDIgMwoKCiMgMSAiL3Vzci9pbmNsdWRlL2JpdHMv
d2NoYXIuaCIgMSAzCiAKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCiMgNTAgIi91c3IvaW5jbHVk
ZS93Y2hhci5oIiAyIDMKCgogCgoKCgoKCgoKCgoKCgogCnR5cGVkZWYgc3RydWN0CnsKICBpbnQg
X19jb3VudDsKICB1bmlvbgogIHsKICAgIHdpbnRfdCBfX3djaDsKICAgIGNoYXIgX193Y2hiWzRd
OwogIH0gX192YWx1ZTsJCSAKfSBfX21ic3RhdGVfdDsKCgoKCiAKCiMgNjgyICIvdXNyL2luY2x1
ZGUvd2NoYXIuaCIgMwoKCgojIDI0ICIvdXNyL2luY2x1ZGUvX0dfY29uZmlnLmgiIDIgMwoKCnR5
cGVkZWYgc3RydWN0CnsKICBfX29mZl90IF9fcG9zOwogIF9fbWJzdGF0ZV90IF9fc3RhdGU7Cn0g
X0dfZnBvc190Owp0eXBlZGVmIHN0cnVjdAp7CiAgX19vZmY2NF90IF9fcG9zOwogIF9fbWJzdGF0
ZV90IF9fc3RhdGU7Cn0gX0dfZnBvczY0X3Q7CgoKCgoKCgoKIyAxICIvdXNyL2luY2x1ZGUvZ2Nv
bnYuaCIgMSAzCiAKCgoKCgoKCgoKCgoKCgoKCgogCgoKCgoKCgoKIyAxICIvdXNyL2luY2x1ZGUv
d2NoYXIuaCIgMSAzCiAKCgoKCgoKCgoKCgoKCgoKCgogCgoKCgoKCgoKCgoKIyA0NiAiL3Vzci9p
bmNsdWRlL3djaGFyLmgiIDMKCgojIDEgIi91c3IvdW5zL2djYy0yLjk1LjMvbGliL2djYy1saWIv
aTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDEgMwoKCgoKCgogCgoK
IyAxOSAiL3Vzci91bnMvZ2NjLTIuOTUuMy9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8y
Ljk1LjMvaW5jbHVkZS9zdGRkZWYuaCIgMwoKCgogCgoKIAoKCgoKCiAKCgojIDYxICIvdXNyL3Vu
cy9nY2MtMi45NS4zL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzIuOTUuMy9pbmNsdWRl
L3N0ZGRlZi5oIiAzCgoKIAoKCgoKCiAKCgoKCgoKCgoKCgoKCgoKCgoKIAoKCgoKCiAKCiAKCiMg
MTMxICIvdXNyL3Vucy9nY2MtMi45NS4zL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzIu
OTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzCgoKIAoKIAoKIyAxOTAgIi91c3IvdW5zL2djYy0yLjk1
LjMvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgi
IDMKCgoKIAoKCgoKIAoKIyAyNzEgIi91c3IvdW5zL2djYy0yLjk1LjMvbGliL2djYy1saWIvaTY4
Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMKCgoKCgoKCgoKCgoKCgog
CgogCgojIDMxNyAiL3Vzci91bnMvZ2NjLTIuOTUuMy9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4
LWdudS8yLjk1LjMvaW5jbHVkZS9zdGRkZWYuaCIgMwoKCgoKIAoKCgoKCgoKCgoKCgoKCgoKCgoK
CgojIDQ4ICIvdXNyL2luY2x1ZGUvd2NoYXIuaCIgMiAzCgoKCgogCgoKCgoKCgoKCgoKIyA3NiAi
L3Vzci9pbmNsdWRlL3djaGFyLmgiIDMKCgoKCiAKCiMgNjgyICIvdXNyL2luY2x1ZGUvd2NoYXIu
aCIgMwoKCgojIDI4ICIvdXNyL2luY2x1ZGUvZ2NvbnYuaCIgMiAzCgoKCiMgMSAiL3Vzci91bnMv
Z2NjLTIuOTUuMy9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8yLjk1LjMvaW5jbHVkZS9z
dGRkZWYuaCIgMSAzCgoKCgoKCiAKCgojIDE5ICIvdXNyL3Vucy9nY2MtMi45NS4zL2xpYi9nY2Mt
bGliL2k2ODYtcGMtbGludXgtZ251LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzCgoKCiAKCgog
CgoKCgoKIAoKCiMgNjEgIi91c3IvdW5zL2djYy0yLjk1LjMvbGliL2djYy1saWIvaTY4Ni1wYy1s
aW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMKCgogCgoKCgoKIAoKCgoKCgoKCgoK
CgoKCgoKCgogCgoKCgoKIAoKIAoKIyAxMzEgIi91c3IvdW5zL2djYy0yLjk1LjMvbGliL2djYy1s
aWIvaTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMKCgogCgogCgoK
IyAxODggIi91c3IvdW5zL2djYy0yLjk1LjMvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUv
Mi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMKCgoKCgogCgoKCgogCgoKIyAyNjkgIi91c3IvdW5z
L2djYy0yLjk1LjMvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUv
c3RkZGVmLmgiIDMKCgoKCiMgMjgzICIvdXNyL3Vucy9nY2MtMi45NS4zL2xpYi9nY2MtbGliL2k2
ODYtcGMtbGludXgtZ251LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzCgoKIAoKIAoKIyAzMTcg
Ii91c3IvdW5zL2djYy0yLjk1LjMvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMi45NS4z
L2luY2x1ZGUvc3RkZGVmLmgiIDMKCgoKCiAKCgoKCgoKCgoKCgoKCgoKCgoKCgoKIyAzMSAiL3Vz
ci9pbmNsdWRlL2djb252LmgiIDIgMwoKCiAKCgogCmVudW0KewogIF9fR0NPTlZfT0sgPSAwLAog
IF9fR0NPTlZfTk9DT05WLAogIF9fR0NPTlZfTk9EQiwKICBfX0dDT05WX05PTUVNLAoKICBfX0dD
T05WX0VNUFRZX0lOUFVULAogIF9fR0NPTlZfRlVMTF9PVVRQVVQsCiAgX19HQ09OVl9JTExFR0FM
X0lOUFVULAogIF9fR0NPTlZfSU5DT01QTEVURV9JTlBVVCwKCiAgX19HQ09OVl9JTExFR0FMX0RF
U0NSSVBUT1IsCiAgX19HQ09OVl9JTlRFUk5BTF9FUlJPUgp9OwoKCiAKZW51bQp7CiAgX19HQ09O
Vl9JU19MQVNUID0gMHgwMDAxLAogIF9fR0NPTlZfSUdOT1JFX0VSUk9SUyA9IDB4MDAwMgp9OwoK
CiAKc3RydWN0IF9fZ2NvbnZfc3RlcDsKc3RydWN0IF9fZ2NvbnZfc3RlcF9kYXRhOwpzdHJ1Y3Qg
X19nY29udl9sb2FkZWRfb2JqZWN0OwpzdHJ1Y3QgX19nY29udl90cmFuc19kYXRhOwoKCiAKdHlw
ZWRlZiBpbnQgKCpfX2djb252X2ZjdCkgKHN0cnVjdCBfX2djb252X3N0ZXAgKiwgc3RydWN0IF9f
Z2NvbnZfc3RlcF9kYXRhICosCgkJCSAgICBfX2NvbnN0IHVuc2lnbmVkIGNoYXIgKiosIF9fY29u
c3QgdW5zaWduZWQgY2hhciAqLAoJCQkgICAgdW5zaWduZWQgY2hhciAqKiwgc2l6ZV90ICosIGlu
dCwgaW50KTsKCiAKdHlwZWRlZiBpbnQgKCpfX2djb252X2luaXRfZmN0KSAoc3RydWN0IF9fZ2Nv
bnZfc3RlcCAqKTsKdHlwZWRlZiB2b2lkICgqX19nY29udl9lbmRfZmN0KSAoc3RydWN0IF9fZ2Nv
bnZfc3RlcCAqKTsKCgogCnR5cGVkZWYgaW50ICgqX19nY29udl90cmFuc19mY3QpIChzdHJ1Y3Qg
X19nY29udl9zdGVwICosCgkJCQkgIHN0cnVjdCBfX2djb252X3N0ZXBfZGF0YSAqLCB2b2lkICos
CgkJCQkgIF9fY29uc3QgdW5zaWduZWQgY2hhciAqLAoJCQkJICBfX2NvbnN0IHVuc2lnbmVkIGNo
YXIgKiosCgkJCQkgIF9fY29uc3QgdW5zaWduZWQgY2hhciAqLCB1bnNpZ25lZCBjaGFyICoqLAoJ
CQkJICBzaXplX3QgKik7CgogCnR5cGVkZWYgaW50ICgqX19nY29udl90cmFuc19jb250ZXh0X2Zj
dCkgKHZvaWQgKiwgX19jb25zdCB1bnNpZ25lZCBjaGFyICosCgkJCQkJICBfX2NvbnN0IHVuc2ln
bmVkIGNoYXIgKiwKCQkJCQkgIHVuc2lnbmVkIGNoYXIgKiwgdW5zaWduZWQgY2hhciAqKTsKCiAK
dHlwZWRlZiBpbnQgKCpfX2djb252X3RyYW5zX3F1ZXJ5X2ZjdCkgKF9fY29uc3QgY2hhciAqLCBf
X2NvbnN0IGNoYXIgKioqLAoJCQkJCXNpemVfdCAqKTsKCiAKdHlwZWRlZiBpbnQgKCpfX2djb252
X3RyYW5zX2luaXRfZmN0KSAodm9pZCAqKiwgY29uc3QgY2hhciAqKTsKdHlwZWRlZiB2b2lkICgq
X19nY29udl90cmFuc19lbmRfZmN0KSAodm9pZCAqKTsKCnN0cnVjdCBfX2djb252X3RyYW5zX2Rh
dGEKewogICAKICBfX2djb252X3RyYW5zX2ZjdCBfX3RyYW5zX2ZjdDsKICBfX2djb252X3RyYW5z
X2NvbnRleHRfZmN0IF9fdHJhbnNfY29udGV4dF9mY3Q7CiAgX19nY29udl90cmFuc19lbmRfZmN0
IF9fdHJhbnNfZW5kX2ZjdDsKICB2b2lkICpfX2RhdGE7CiAgc3RydWN0IF9fZ2NvbnZfdHJhbnNf
ZGF0YSAqX19uZXh0Owp9OwoKCiAKc3RydWN0IF9fZ2NvbnZfc3RlcAp7CiAgc3RydWN0IF9fZ2Nv
bnZfbG9hZGVkX29iamVjdCAqX19zaGxpYl9oYW5kbGU7CiAgX19jb25zdCBjaGFyICpfX21vZG5h
bWU7CgogIGludCBfX2NvdW50ZXI7CgogIGNoYXIgKl9fZnJvbV9uYW1lOwogIGNoYXIgKl9fdG9f
bmFtZTsKCiAgX19nY29udl9mY3QgX19mY3Q7CiAgX19nY29udl9pbml0X2ZjdCBfX2luaXRfZmN0
OwogIF9fZ2NvbnZfZW5kX2ZjdCBfX2VuZF9mY3Q7CgogICAKCiAgaW50IF9fbWluX25lZWRlZF9m
cm9tOwogIGludCBfX21heF9uZWVkZWRfZnJvbTsKICBpbnQgX19taW5fbmVlZGVkX3RvOwogIGlu
dCBfX21heF9uZWVkZWRfdG87CgogICAKICBpbnQgX19zdGF0ZWZ1bDsKCiAgdm9pZCAqX19kYXRh
OwkJIAp9OwoKIAoKc3RydWN0IF9fZ2NvbnZfc3RlcF9kYXRhCnsKICB1bnNpZ25lZCBjaGFyICpf
X291dGJ1ZjsgICAgIAogIHVuc2lnbmVkIGNoYXIgKl9fb3V0YnVmZW5kOyAgCgoKICAgCiAgaW50
IF9fZmxhZ3M7CgogICAKCiAgaW50IF9faW52b2NhdGlvbl9jb3VudGVyOwoKICAgCgogIGludCBf
X2ludGVybmFsX3VzZTsKCiAgX19tYnN0YXRlX3QgKl9fc3RhdGVwOwogIF9fbWJzdGF0ZV90IF9f
c3RhdGU7CSAKCgogICAKICBzdHJ1Y3QgX19nY29udl90cmFuc19kYXRhICpfX3RyYW5zOwp9OwoK
CiAKdHlwZWRlZiBzdHJ1Y3QgX19nY29udl9pbmZvCnsKICBzaXplX3QgX19uc3RlcHM7CiAgc3Ry
dWN0IF9fZ2NvbnZfc3RlcCAqX19zdGVwczsKICBfX2V4dGVuc2lvbl9fIHN0cnVjdCBfX2djb252
X3N0ZXBfZGF0YSBfX2RhdGEgWzBdIDsKfSAqX19nY29udl90OwoKCiMgNDQgIi91c3IvaW5jbHVk
ZS9fR19jb25maWcuaCIgMiAzCgp0eXBlZGVmIHVuaW9uCnsKICBzdHJ1Y3QgX19nY29udl9pbmZv
IF9fY2Q7CiAgc3RydWN0CiAgewogICAgc3RydWN0IF9fZ2NvbnZfaW5mbyBfX2NkOwogICAgc3Ry
dWN0IF9fZ2NvbnZfc3RlcF9kYXRhIF9fZGF0YTsKICB9IF9fY29tYmluZWQ7Cn0gX0dfaWNvbnZf
dDsKCnR5cGVkZWYgaW50IF9HX2ludDE2X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0hJ
X18pKSk7CnR5cGVkZWYgaW50IF9HX2ludDMyX3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChf
X1NJX18pKSk7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9HX3VpbnQxNl90IF9fYXR0cmlidXRlX18g
KChfX21vZGVfXyAoX19ISV9fKSkpOwp0eXBlZGVmIHVuc2lnbmVkIGludCBfR191aW50MzJfdCBf
X2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fU0lfXykpKTsKCgoKCiAKCgoKCgoKCgoKCgoKCgoK
CgoKIAoKCgoKIAoKCgoKCgoKCgoKCgoKCiMgMzIgIi91c3IvaW5jbHVkZS9saWJpby5oIiAyIDMK
CiAKCgoKCgoKCgoKCgoKCgoKCgogCgojIDEgIi91c3IvdW5zL2djYy0yLjk1LjMvbGliL2djYy1s
aWIvaTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkYXJnLmgiIDEgMwogCgoKCgoK
CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
CgogCgoKCgoKCnR5cGVkZWYgdm9pZCAqX19nbnVjX3ZhX2xpc3Q7CgoKCiAKCiMgMTIyICIvdXNy
L3Vucy9nY2MtMi45NS4zL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzIuOTUuMy9pbmNs
dWRlL3N0ZGFyZy5oIiAzCgoKCgoKCgoKCgoKCgoKCgoKCgoKIyAyMDkgIi91c3IvdW5zL2djYy0y
Ljk1LjMvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkYXJn
LmgiIDMKCgoKCiMgNTMgIi91c3IvaW5jbHVkZS9saWJpby5oIiAyIDMKCgoKCgoKCiMgNzIgIi91
c3IvaW5jbHVkZS9saWJpby5oIiAzCgoKIAoKCgoKCgoKCgoKCgoKCgoKCiMgMTAzICIvdXNyL2lu
Y2x1ZGUvbGliaW8uaCIgMwoKCgoKCgoKCgoKCiAKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCiAK
CgoKCgoKCgoKCgoKCgoKCgoKCnN0cnVjdCBfSU9fanVtcF90OyAgc3RydWN0IF9JT19GSUxFOwoK
IAoKCgoKCgoKdHlwZWRlZiB2b2lkIF9JT19sb2NrX3Q7CgoKCiAKCnN0cnVjdCBfSU9fbWFya2Vy
IHsKICBzdHJ1Y3QgX0lPX21hcmtlciAqX25leHQ7CiAgc3RydWN0IF9JT19GSUxFICpfc2J1ZjsK
ICAgCgogICAKICBpbnQgX3BvczsKIyAxOTIgIi91c3IvaW5jbHVkZS9saWJpby5oIiAzCgp9OwoK
IAplbnVtIF9fY29kZWN2dF9yZXN1bHQKewogIF9fY29kZWN2dF9vaywKICBfX2NvZGVjdnRfcGFy
dGlhbCwKICBfX2NvZGVjdnRfZXJyb3IsCiAgX19jb2RlY3Z0X25vY29udgp9OwoKIyAyNTkgIi91
c3IvaW5jbHVkZS9saWJpby5oIiAzCgoKc3RydWN0IF9JT19GSUxFIHsKICBpbnQgX2ZsYWdzOwkJ
IAoKCiAgIAogICAKICBjaGFyKiBfSU9fcmVhZF9wdHI7CSAKICBjaGFyKiBfSU9fcmVhZF9lbmQ7
CSAKICBjaGFyKiBfSU9fcmVhZF9iYXNlOwkgCiAgY2hhciogX0lPX3dyaXRlX2Jhc2U7CSAKICBj
aGFyKiBfSU9fd3JpdGVfcHRyOwkgCiAgY2hhciogX0lPX3dyaXRlX2VuZDsJIAogIGNoYXIqIF9J
T19idWZfYmFzZTsJIAogIGNoYXIqIF9JT19idWZfZW5kOwkgCiAgIAogIGNoYXIgKl9JT19zYXZl
X2Jhc2U7ICAKICBjaGFyICpfSU9fYmFja3VwX2Jhc2U7ICAgCiAgY2hhciAqX0lPX3NhdmVfZW5k
OyAgCgogIHN0cnVjdCBfSU9fbWFya2VyICpfbWFya2VyczsKCiAgc3RydWN0IF9JT19GSUxFICpf
Y2hhaW47CgogIGludCBfZmlsZW5vOwogIGludCBfYmxrc2l6ZTsKICBfX29mZl90ICAgX29sZF9v
ZmZzZXQ7ICAKCgogICAKICB1bnNpZ25lZCBzaG9ydCBfY3VyX2NvbHVtbjsKICBzaWduZWQgY2hh
ciBfdnRhYmxlX29mZnNldDsKICBjaGFyIF9zaG9ydGJ1ZlsxXTsKCiAgIAoKICBfSU9fbG9ja190
ICpfbG9jazsKCgoKCgoKCgogIF9fb2ZmNjRfdCAgIF9vZmZzZXQ7CgoKCgoKICB2b2lkICpfX3Bh
ZDE7CiAgdm9pZCAqX19wYWQyOwoKICBpbnQgX21vZGU7CiAgIAogIGNoYXIgX3VudXNlZDJbMTUg
KiBzaXplb2YgKGludCkgLSAyICogc2l6ZW9mICh2b2lkICopXTsKCn07CgoKCgoKc3RydWN0IF9J
T19GSUxFX3BsdXM7CgpleHRlcm4gc3RydWN0IF9JT19GSUxFX3BsdXMgX0lPXzJfMV9zdGRpbl87
CmV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEVfcGx1cyBfSU9fMl8xX3N0ZG91dF87CmV4dGVybiBzdHJ1
Y3QgX0lPX0ZJTEVfcGx1cyBfSU9fMl8xX3N0ZGVycl87CgoKCgoKCgoKCgoKIAoKIAoKdHlwZWRl
ZiBfX3NzaXplX3QgX19pb19yZWFkX2ZuICh2b2lkICpfX2Nvb2tpZSwgY2hhciAqX19idWYsIHNp
emVfdCBfX25ieXRlcyk7CgogCgoKCgoKdHlwZWRlZiBfX3NzaXplX3QgX19pb193cml0ZV9mbiAo
dm9pZCAqX19jb29raWUsIF9fY29uc3QgY2hhciAqX19idWYsCgkJCQkgc2l6ZV90IF9fbik7Cgog
CgoKCgoKdHlwZWRlZiBpbnQgX19pb19zZWVrX2ZuICh2b2lkICpfX2Nvb2tpZSwgX19vZmY2NF90
ICAgKl9fcG9zLCBpbnQgX193KTsKCiAKdHlwZWRlZiBpbnQgX19pb19jbG9zZV9mbiAodm9pZCAq
X19jb29raWUpOwoKCiMgMzg5ICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMwoKCgoKZXh0ZXJuICJD
IiB7CgoKZXh0ZXJuIGludCBfX3VuZGVyZmxvdyAoX0lPX0ZJTEUgKikgdGhyb3cgKCkgOwpleHRl
cm4gaW50IF9fdWZsb3cgKF9JT19GSUxFICopIHRocm93ICgpIDsKZXh0ZXJuIGludCBfX292ZXJm
bG93IChfSU9fRklMRSAqLCBpbnQpIHRocm93ICgpIDsKZXh0ZXJuIHdpbnRfdCAgIF9fd3VuZGVy
ZmxvdyAoX0lPX0ZJTEUgKikgdGhyb3cgKCkgOwpleHRlcm4gd2ludF90ICAgX193dWZsb3cgKF9J
T19GSUxFICopIHRocm93ICgpIDsKZXh0ZXJuIHdpbnRfdCAgIF9fd292ZXJmbG93IChfSU9fRklM
RSAqLCB3aW50X3QgICkgdGhyb3cgKCkgOwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpleHRlcm4g
aW50IF9JT19nZXRjIChfSU9fRklMRSAqX19mcCkgdGhyb3cgKCkgOwpleHRlcm4gaW50IF9JT19w
dXRjIChpbnQgX19jLCBfSU9fRklMRSAqX19mcCkgdGhyb3cgKCkgOwpleHRlcm4gaW50IF9JT19m
ZW9mIChfSU9fRklMRSAqX19mcCkgdGhyb3cgKCkgOwpleHRlcm4gaW50IF9JT19mZXJyb3IgKF9J
T19GSUxFICpfX2ZwKSB0aHJvdyAoKSA7CgpleHRlcm4gaW50IF9JT19wZWVrY19sb2NrZWQgKF9J
T19GSUxFICpfX2ZwKSB0aHJvdyAoKSA7CgogCgoKCmV4dGVybiB2b2lkIF9JT19mbG9ja2ZpbGUg
KF9JT19GSUxFICopIHRocm93ICgpIDsKZXh0ZXJuIHZvaWQgX0lPX2Z1bmxvY2tmaWxlIChfSU9f
RklMRSAqKSB0aHJvdyAoKSA7CmV4dGVybiBpbnQgX0lPX2Z0cnlsb2NrZmlsZSAoX0lPX0ZJTEUg
KikgdGhyb3cgKCkgOwoKCgoKCgoKCgoKCgoKCgoKZXh0ZXJuIGludCBfSU9fdmZzY2FuZiAoX0lP
X0ZJTEUgKiBfX3Jlc3RyaWN0LCBjb25zdCBjaGFyICogX19yZXN0cmljdCwKCQkJX19nbnVjX3Zh
X2xpc3QgLCBpbnQgKl9fcmVzdHJpY3QpIHRocm93ICgpIDsKZXh0ZXJuIGludCBfSU9fdmZwcmlu
dGYgKF9JT19GSUxFICpfX3Jlc3RyaWN0LCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0LAoJCQkgX19n
bnVjX3ZhX2xpc3QgKSB0aHJvdyAoKSA7CmV4dGVybiBfX3NzaXplX3QgICBfSU9fcGFkbiAoX0lP
X0ZJTEUgKiwgaW50LCBfX3NzaXplX3QgICkgdGhyb3cgKCkgOwpleHRlcm4gc2l6ZV90ICAgX0lP
X3NnZXRuIChfSU9fRklMRSAqLCB2b2lkICosIHNpemVfdCAgKSB0aHJvdyAoKSA7CgpleHRlcm4g
X19vZmY2NF90ICAgX0lPX3NlZWtvZmYgKF9JT19GSUxFICosIF9fb2ZmNjRfdCAgLCBpbnQsIGlu
dCkgdGhyb3cgKCkgOwpleHRlcm4gX19vZmY2NF90ICAgX0lPX3NlZWtwb3MgKF9JT19GSUxFICos
IF9fb2ZmNjRfdCAgLCBpbnQpIHRocm93ICgpIDsKCmV4dGVybiB2b2lkIF9JT19mcmVlX2JhY2t1
cF9hcmVhIChfSU9fRklMRSAqKSB0aHJvdyAoKSA7CgojIDUxMSAiL3Vzci9pbmNsdWRlL2xpYmlv
LmgiIDMKCgoKfQoKCgojIDY1ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMiAzCgoKIyA3NiAiL3Vz
ci9pbmNsdWRlL3N0ZGlvLmgiIDMKCgogCgp0eXBlZGVmIF9HX2Zwb3NfdCBmcG9zX3Q7CgoKCgoK
CgogCgoKCgoKIAoKCgoKCiAKCgoKCgoKIAoKCgoKCgoKIAoKCgoKIAoKCgoKCgoKCiMgMSAiL3Vz
ci9pbmNsdWRlL2JpdHMvc3RkaW9fbGltLmgiIDEgMwogCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCgoKCgoKCgojIDEyOSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDIgMwoKCgogCmV4
dGVybiBGSUxFICpzdGRpbjsJCSAKZXh0ZXJuIEZJTEUgKnN0ZG91dDsJCSAKZXh0ZXJuIEZJTEUg
KnN0ZGVycjsJCSAKCiAKCgoKCgogCmV4dGVybiBpbnQgcmVtb3ZlIChfX2NvbnN0IGNoYXIgKl9f
ZmlsZW5hbWUpIHRocm93ICgpIDsKIApleHRlcm4gaW50IHJlbmFtZSAoX19jb25zdCBjaGFyICpf
X29sZCwgX19jb25zdCBjaGFyICpfX25ldykgdGhyb3cgKCkgOwoKCiAKCmV4dGVybiBGSUxFICp0
bXBmaWxlICh2b2lkKSB0aHJvdyAoKSA7CgoKCgoKCgoKCgogCmV4dGVybiBjaGFyICp0bXBuYW0g
KGNoYXIgKl9fcykgdGhyb3cgKCkgOwoKCiAKCmV4dGVybiBjaGFyICp0bXBuYW1fciAoY2hhciAq
X19zKSB0aHJvdyAoKSA7CgoKCgogCgoKCgoKCmV4dGVybiBjaGFyICp0ZW1wbmFtIChfX2NvbnN0
IGNoYXIgKl9fZGlyLCBfX2NvbnN0IGNoYXIgKl9fcGZ4KQogICAgIHRocm93ICgpICAgOwoKCgog
CmV4dGVybiBpbnQgZmNsb3NlIChGSUxFICpfX3N0cmVhbSkgdGhyb3cgKCkgOwogCmV4dGVybiBp
bnQgZmZsdXNoIChGSUxFICpfX3N0cmVhbSkgdGhyb3cgKCkgOwoKCiAKZXh0ZXJuIGludCBmZmx1
c2hfdW5sb2NrZWQgKEZJTEUgKl9fc3RyZWFtKSB0aHJvdyAoKSA7CgoKCgoKCgoKCiAKZXh0ZXJu
IEZJTEUgKmZvcGVuIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19maWxlbmFtZSwKCQkgICAg
X19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbW9kZXMpIHRocm93ICgpIDsKIApleHRlcm4gRklM
RSAqZnJlb3BlbiAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZmlsZW5hbWUsCgkJICAgICAg
X19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbW9kZXMsCgkJICAgICAgRklMRSAqX19yZXN0cmlj
dCBfX3N0cmVhbSkgdGhyb3cgKCkgOwojIDIyMiAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMKCgoK
CgoKCgoKCiAKZXh0ZXJuIEZJTEUgKmZkb3BlbiAoaW50IF9fZmQsIF9fY29uc3QgY2hhciAqX19t
b2RlcykgdGhyb3cgKCkgOwoKCiMgMjUxICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMwoKCgogCgpl
eHRlcm4gdm9pZCBzZXRidWYgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sIGNoYXIgKl9fcmVz
dHJpY3QgX19idWYpIHRocm93ICgpIDsKIAoKCmV4dGVybiBpbnQgc2V0dmJ1ZiAoRklMRSAqX19y
ZXN0cmljdCBfX3N0cmVhbSwgY2hhciAqX19yZXN0cmljdCBfX2J1ZiwKCQkgICAgaW50IF9fbW9k
ZXMsIHNpemVfdCBfX24pIHRocm93ICgpIDsKCgogCgpleHRlcm4gdm9pZCBzZXRidWZmZXIgKEZJ
TEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsCgkJICAgICAg
IHNpemVfdCBfX3NpemUpIHRocm93ICgpIDsKCiAKZXh0ZXJuIHZvaWQgc2V0bGluZWJ1ZiAoRklM
RSAqX19zdHJlYW0pIHRocm93ICgpIDsKCgoKIApleHRlcm4gaW50IGZwcmludGYgKEZJTEUgKl9f
cmVzdHJpY3QgX19zdHJlYW0sCgkJICAgIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1h
dCwgLi4uKSB0aHJvdyAoKSA7CiAKZXh0ZXJuIGludCBwcmludGYgKF9fY29uc3QgY2hhciAqX19y
ZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSB0aHJvdyAoKSA7CiAKZXh0ZXJuIGludCBzcHJpbnRmIChj
aGFyICpfX3Jlc3RyaWN0IF9fcywKCQkgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9y
bWF0LCAuLi4pIHRocm93ICgpIDsKCiAKZXh0ZXJuIGludCB2ZnByaW50ZiAoRklMRSAqX19yZXN0
cmljdCBfX3MsIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwKCQkgICAgIF9fZ251
Y192YV9saXN0ICBfX2FyZykgdGhyb3cgKCkgOwogCmV4dGVybiBpbnQgdnByaW50ZiAoX19jb25z
dCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCBfX2dudWNfdmFfbGlzdCAgX19hcmcpCiAgICAg
dGhyb3cgKCkgOwogCmV4dGVybiBpbnQgdnNwcmludGYgKGNoYXIgKl9fcmVzdHJpY3QgX19zLCBf
X2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsCgkJICAgICBfX2dudWNfdmFfbGlzdCAg
X19hcmcpIHRocm93ICgpIDsKCgogCmV4dGVybiBpbnQgc25wcmludGYgKGNoYXIgKl9fcmVzdHJp
Y3QgX19zLCBzaXplX3QgX19tYXhsZW4sCgkJICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3Qg
X19mb3JtYXQsIC4uLikKICAgICB0aHJvdyAoKSAgX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18g
KF9fcHJpbnRmX18sIDMsIDQpKSk7CgpleHRlcm4gaW50IHZzbnByaW50ZiAoY2hhciAqX19yZXN0
cmljdCBfX3MsIHNpemVfdCBfX21heGxlbiwKCQkgICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJp
Y3QgX19mb3JtYXQsIF9fZ251Y192YV9saXN0ICBfX2FyZykKICAgICB0aHJvdyAoKSAgX19hdHRy
aWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fcHJpbnRmX18sIDMsIDApKSk7CgoKIyAzMjMgIi91c3Iv
aW5jbHVkZS9zdGRpby5oIiAzCgoKCiAKZXh0ZXJuIGludCBmc2NhbmYgKEZJTEUgKl9fcmVzdHJp
Y3QgX19zdHJlYW0sCgkJICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4p
IHRocm93ICgpIDsKIApleHRlcm4gaW50IHNjYW5mIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3Qg
X19mb3JtYXQsIC4uLikgdGhyb3cgKCkgOwogCmV4dGVybiBpbnQgc3NjYW5mIChfX2NvbnN0IGNo
YXIgKl9fcmVzdHJpY3QgX19zLAoJCSAgIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1h
dCwgLi4uKSB0aHJvdyAoKSA7CgojIDM0OSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMKCgoKIApl
eHRlcm4gaW50IGZnZXRjIChGSUxFICpfX3N0cmVhbSkgdGhyb3cgKCkgOwpleHRlcm4gaW50IGdl
dGMgKEZJTEUgKl9fc3RyZWFtKSB0aHJvdyAoKSA7CgogCmV4dGVybiBpbnQgZ2V0Y2hhciAodm9p
ZCkgdGhyb3cgKCkgOwoKIAoKCgoKIApleHRlcm4gaW50IGdldGNfdW5sb2NrZWQgKEZJTEUgKl9f
c3RyZWFtKSB0aHJvdyAoKSA7CmV4dGVybiBpbnQgZ2V0Y2hhcl91bmxvY2tlZCAodm9pZCkgdGhy
b3cgKCkgOwoKCgogCmV4dGVybiBpbnQgZmdldGNfdW5sb2NrZWQgKEZJTEUgKl9fc3RyZWFtKSB0
aHJvdyAoKSA7CgoKCiAKZXh0ZXJuIGludCBmcHV0YyAoaW50IF9fYywgRklMRSAqX19zdHJlYW0p
IHRocm93ICgpIDsKZXh0ZXJuIGludCBwdXRjIChpbnQgX19jLCBGSUxFICpfX3N0cmVhbSkgdGhy
b3cgKCkgOwoKIApleHRlcm4gaW50IHB1dGNoYXIgKGludCBfX2MpIHRocm93ICgpIDsKCiAKCgoK
CiAKZXh0ZXJuIGludCBmcHV0Y191bmxvY2tlZCAoaW50IF9fYywgRklMRSAqX19zdHJlYW0pIHRo
cm93ICgpIDsKCgoKIApleHRlcm4gaW50IHB1dGNfdW5sb2NrZWQgKGludCBfX2MsIEZJTEUgKl9f
c3RyZWFtKSB0aHJvdyAoKSA7CmV4dGVybiBpbnQgcHV0Y2hhcl91bmxvY2tlZCAoaW50IF9fYykg
dGhyb3cgKCkgOwoKCgoKIApleHRlcm4gaW50IGdldHcgKEZJTEUgKl9fc3RyZWFtKSB0aHJvdyAo
KSA7CgogCmV4dGVybiBpbnQgcHV0dyAoaW50IF9fdywgRklMRSAqX19zdHJlYW0pIHRocm93ICgp
IDsKCgoKIApleHRlcm4gY2hhciAqZmdldHMgKGNoYXIgKl9fcmVzdHJpY3QgX19zLCBpbnQgX19u
LCBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKQogICAgIHRocm93ICgpIDsKCgoKCgoKCiAKCmV4
dGVybiBjaGFyICpnZXRzIChjaGFyICpfX3MpIHRocm93ICgpIDsKCgojIDQzOSAiL3Vzci9pbmNs
dWRlL3N0ZGlvLmgiIDMKCgoKIApleHRlcm4gaW50IGZwdXRzIChfX2NvbnN0IGNoYXIgKl9fcmVz
dHJpY3QgX19zLCBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKQogICAgIHRocm93ICgpIDsKCgoK
CgoKCiAKZXh0ZXJuIGludCBwdXRzIChfX2NvbnN0IGNoYXIgKl9fcykgdGhyb3cgKCkgOwoKCiAK
ZXh0ZXJuIGludCB1bmdldGMgKGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKSB0aHJvdyAoKSA7CgoK
IApleHRlcm4gc2l6ZV90IGZyZWFkICh2b2lkICpfX3Jlc3RyaWN0IF9fcHRyLCBzaXplX3QgX19z
aXplLAoJCSAgICAgc2l6ZV90IF9fbiwgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgdGhyb3cg
KCkgOwogCmV4dGVybiBzaXplX3QgZndyaXRlIChfX2NvbnN0IHZvaWQgKl9fcmVzdHJpY3QgX19w
dHIsIHNpemVfdCBfX3NpemUsCgkJICAgICAgc2l6ZV90IF9fbiwgRklMRSAqX19yZXN0cmljdCBf
X3MpIHRocm93ICgpIDsKCgogCmV4dGVybiBzaXplX3QgZnJlYWRfdW5sb2NrZWQgKHZvaWQgKl9f
cmVzdHJpY3QgX19wdHIsIHNpemVfdCBfX3NpemUsCgkJCSAgICAgIHNpemVfdCBfX24sIEZJTEUg
Kl9fcmVzdHJpY3QgX19zdHJlYW0pIHRocm93ICgpIDsKZXh0ZXJuIHNpemVfdCBmd3JpdGVfdW5s
b2NrZWQgKF9fY29uc3Qgdm9pZCAqX19yZXN0cmljdCBfX3B0ciwgc2l6ZV90IF9fc2l6ZSwKCQkJ
ICAgICAgIHNpemVfdCBfX24sIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pIHRocm93ICgpIDsK
CgoKIApleHRlcm4gaW50IGZzZWVrIChGSUxFICpfX3N0cmVhbSwgbG9uZyBpbnQgX19vZmYsIGlu
dCBfX3doZW5jZSkgdGhyb3cgKCkgOwogCmV4dGVybiBsb25nIGludCBmdGVsbCAoRklMRSAqX19z
dHJlYW0pIHRocm93ICgpIDsKIApleHRlcm4gdm9pZCByZXdpbmQgKEZJTEUgKl9fc3RyZWFtKSB0
aHJvdyAoKSA7CgogCgoKCgoKCgoKCgoKCiAKZXh0ZXJuIGludCBmZ2V0cG9zIChGSUxFICpfX3Jl
c3RyaWN0IF9fc3RyZWFtLCBmcG9zX3QgKl9fcmVzdHJpY3QgX19wb3MpCiAgICAgdGhyb3cgKCkg
OwogCmV4dGVybiBpbnQgZnNldHBvcyAoRklMRSAqX19zdHJlYW0sIF9fY29uc3QgZnBvc190ICpf
X3BvcykgdGhyb3cgKCkgOwojIDUyMiAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMKCgoKCgoKCgoK
CiAKZXh0ZXJuIHZvaWQgY2xlYXJlcnIgKEZJTEUgKl9fc3RyZWFtKSB0aHJvdyAoKSA7CiAKZXh0
ZXJuIGludCBmZW9mIChGSUxFICpfX3N0cmVhbSkgdGhyb3cgKCkgOwogCmV4dGVybiBpbnQgZmVy
cm9yIChGSUxFICpfX3N0cmVhbSkgdGhyb3cgKCkgOwoKCiAKZXh0ZXJuIHZvaWQgY2xlYXJlcnJf
dW5sb2NrZWQgKEZJTEUgKl9fc3RyZWFtKSB0aHJvdyAoKSA7CmV4dGVybiBpbnQgZmVvZl91bmxv
Y2tlZCAoRklMRSAqX19zdHJlYW0pIHRocm93ICgpIDsKZXh0ZXJuIGludCBmZXJyb3JfdW5sb2Nr
ZWQgKEZJTEUgKl9fc3RyZWFtKSB0aHJvdyAoKSA7CgoKCiAKZXh0ZXJuIHZvaWQgcGVycm9yIChf
X2NvbnN0IGNoYXIgKl9fcykgdGhyb3cgKCkgOwoKIAoKCmV4dGVybiBpbnQgc3lzX25lcnI7CmV4
dGVybiBfX2NvbnN0IGNoYXIgKl9fY29uc3Qgc3lzX2Vycmxpc3RbXTsKCgoKCgoKCgogCmV4dGVy
biBpbnQgZmlsZW5vIChGSUxFICpfX3N0cmVhbSkgdGhyb3cgKCkgOwoKCgogCmV4dGVybiBpbnQg
ZmlsZW5vX3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSkgdGhyb3cgKCkgOwoKCgoKCiAKZXh0ZXJu
IEZJTEUgKnBvcGVuIChfX2NvbnN0IGNoYXIgKl9fY29tbWFuZCwgX19jb25zdCBjaGFyICpfX21v
ZGVzKSB0aHJvdyAoKSA7CgogCmV4dGVybiBpbnQgcGNsb3NlIChGSUxFICpfX3N0cmVhbSkgdGhy
b3cgKCkgOwoKCgoKIApleHRlcm4gY2hhciAqY3Rlcm1pZCAoY2hhciAqX19zKSB0aHJvdyAoKSA7
CgoKCgoKCgoKCiMgNjA0ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMwoKCgoKIAoKIApleHRlcm4g
dm9pZCBmbG9ja2ZpbGUgKEZJTEUgKl9fc3RyZWFtKSB0aHJvdyAoKSA7CgogCgpleHRlcm4gaW50
IGZ0cnlsb2NrZmlsZSAoRklMRSAqX19zdHJlYW0pIHRocm93ICgpIDsKCiAKZXh0ZXJuIHZvaWQg
ZnVubG9ja2ZpbGUgKEZJTEUgKl9fc3RyZWFtKSB0aHJvdyAoKSA7CgoKCgoKCgoKCgogCgoKCgoK
fSAKCgoKCiMgMSAiYnVnLmNjIiAyCgoKdGVtcGxhdGUgPGludCBhPgpjbGFzcyBBIHsKcHVibGlj
OgogIAogIHRlbXBsYXRlIDxpbnQgZj4KICBzdGF0aWMgaW50IGZvbygpIHsKICAgIHJldHVybiBh
K2Y7CiAgfTsKCn07CgppbnQgbWFpbigpIHsKCiAgdHlwZWRlZiBpbnQgKCpGVU5DX1RZUEUpICgp
OwoKICAKICBGVU5DX1RZUEUgcGZ1bmMgPSBBPDE+Ojpmb288Mj47CgogIGludCB4ID0gcGZ1bmMo
KTsKICAKCiAgIAogICAKCiAgcHJpbnRmKCIlZFxuIiwgeCk7CgogIHJldHVybiAwOwp9Owo=



More information about the Gcc-bugs mailing list