c++/4688: g++ hangs on this file (no output)

een@cs.chalmers.se een@cs.chalmers.se
Thu Oct 25 16:28:00 GMT 2001


>Number:         4688
>Category:       c++
>Synopsis:       g++ hangs on this file (no output)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Oct 25 16:26:28 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Niklas Een
>Release:        gcc version 2.96 20000731 (Linux-Mandrake 8.0 2.96-0.48mdk)
>Organization:
>Environment:

>Description:
When I added the 'ext_widenColor()' function, the program no
longer compiles. G++ just hangs forever without producing any output.
>How-To-Repeat:
g++ -c Bug.C
>Fix:

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

Ly89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci8vIElOTElORUQgSEVB
REVSIEZJTEVTCgoKI2lmbmRlZiBHbG9iYWxfaAojZGVmaW5lIEdsb2JhbF9oCgojaW5jbHVkZSA8
Y2Fzc2VydD4KI2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGNzdGRsaWI+CiNpbmNsdWRlIDxj
c3RyaW5nPgoKLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgoKI2RlZmluZSBlbGVtc29mKHgpIChzaXpl
b2YoeCkgLyBzaXplb2YoKih4KSkpCgppbmxpbmUgaW50IGltYXgoaW50IHgsIGludCB5KSAgICAg
ICAgeyByZXR1cm4gKHggPiB5KSA/IHggOiB5OyAgICAgfQppbmxpbmUgaW50IGltYXgoaW50IHgs
IGludCB5LCBpbnQgeikgeyByZXR1cm4gaW1heCh4LCBpbWF4KHksIHopKTsgfQoKLy8tIC0gLSAt
IC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0g
LSAtIC0gLSAtIC0gLQoKY2hhciogc3RydG9rcihjaGFyKiogc3JjLCBjb25zdCBjaGFyKiBzZXBz
KTsKY2hhciogbnNwcmludGYoY29uc3QgY2hhciogZm9ybWF0LCAuLi4pOwoKLy8tIC0gLSAtIC0g
LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAt
IC0gLSAtIC0gLQoKLy8gQXV0b21hdGljIGRpc3Bvc2FsIG9mIEMgYXJyYXlzOgovLwp0ZW1wbGF0
ZSA8Y2xhc3MgVD4KY2xhc3MgRnJlZSB7CiAgICBUKiAgdmVjOwpwdWJsaWM6CiAgICBGcmVlKFQq
IHZlY18pIHsgdmVjID0gdmVjXzsgfQogICB+RnJlZSh2b2lkKSAgICB7IGZyZWUodmVjKTsgIH0K
ICAgIG9wZXJhdG9yIFQqICh2b2lkKSB7IHJldHVybiB2ZWM7IH0KfTsKCiNkZWZpbmUgc0ZyZWUo
Y3N0cikgKChjaGFyKilGcmVlPGNoYXI+KGNzdHIpKQoKLy8tIC0gLSAtIC0gLSAtIC0gLSAtIC0g
LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLQoK
Ly8gQXV0b21hdGljYWxseSByZXNpemFibGUgYXJyYXlzICh2aWEgJ3B1c2goKScgbWV0aG9kKToK
Ly8KdGVtcGxhdGU8Y2xhc3MgVD4KY2xhc3MgdmVjIHsKICAgIFQqICBkYXRhOwogICAgaW50IGRh
dGFfc3o7CiAgICBpbnQgZGF0YV9jYXA7CgogICAgdm9pZCAgICBncm93KHZvaWQpIHsKICAgICAg
ICBkYXRhX2NhcCA9IChkYXRhX2NhcCArIDgpICogMjsKICAgICAgICBkYXRhID0gKFQqKXJlYWxs
b2MoZGF0YSwgZGF0YV9jYXAqc2l6ZW9mKFQpKTsgfQoKcHVibGljOgogICAgaW50ICAgICAgc2l6
ZSAgKHZvaWQpIGNvbnN0IHsgcmV0dXJuIGRhdGFfc3o7IH0KICAgIHZvaWQgICAgIHNocmluayhp
bnQgbmVsZW1zKSB7IGFzc2VydChuZWxlbXMgPD0gZGF0YV9zeik7IGRhdGFfc3ogLT0gbmVsZW1z
OyB9CiAgICB2b2lkICAgICBwdXNoICAoVCBlbGVtKSAgICAgeyBpZiAoZGF0YV9zeiA9PSBkYXRh
X2NhcCkgZ3JvdygpOyBkYXRhW2RhdGFfc3pdID0gZWxlbTsgZGF0YV9zeisrOyB9CiAgICBUJiAg
ICAgICBsYXN0ICAodm9pZCkgICAgICAgeyByZXR1cm4gZGF0YVtkYXRhX3N6LTFdOyB9CiAgICBj
b25zdCBUJiBsYXN0ICAodm9pZCkgY29uc3QgeyByZXR1cm4gZGF0YVtkYXRhX3N6LTFdOyB9CiAg
ICB2b2lkICAgICBjbGVhciAodm9pZCkgICAgICAgeyBpZiAoZGF0YSAhPSBOVUxMKSBmcmVlKGRh
dGEpOyBkYXRhID0gTlVMTDsgZGF0YV9zeiA9IDA7IGRhdGFfY2FwID0gMDsgfQoKICAgIFQmICAg
ICAgIG9wZXJhdG9yIFtdIChpbnQgaW5kZXgpICAgICAgIHsgYXNzZXJ0KGluZGV4ID49IDAgJiYg
aW5kZXggPCBkYXRhX3N6KTsgcmV0dXJuIGRhdGFbaW5kZXhdOyB9CiAgICBjb25zdCBUJiBvcGVy
YXRvciBbXSAoaW50IGluZGV4KSBjb25zdCB7IGFzc2VydChpbmRleCA+PSAwICYmIGluZGV4IDwg
ZGF0YV9zeik7IHJldHVybiBkYXRhW2luZGV4XTsgfQoKICAgIC8vICh0cmFuc2ZlciBvd25lcnNo
aXAgb2YgYXJyYXkgdG8gY2FsbGVyLCB6ZXJvaW5nIHRoZSAndmVjJykKICAgIFQqICAgICAgY2xh
aW0gKHZvaWQpICAgICAgICB7IFQqIHJldCA9IGRhdGE7IGRhdGEgPSBOVUxMOyBkYXRhX3N6ID0g
MDsgZGF0YV9jYXAgPSAwOyByZXR1cm4gcmV0OyB9CgogICAgdmVjKHZvaWQpICAgICAgICAgICAg
ICAgICAgIHsgZGF0YSA9IE5VTEw7IGRhdGFfc3ogPSAwOyBkYXRhX2NhcCA9IDA7IH0KICAgfnZl
Yyh2b2lkKSAgICAgICAgICAgICAgICAgICB7IGNsZWFyKCk7IH0KfTsKCi8vPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQoKI2VuZGlmCgovLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci8vIENhcmRzOiAoZml0cyBp
biA2IGJpdHMpCgoKdHlwZWRlZiBpbnQgQ2FyZDsKCi8vIENhcmQgY29sb3JzIGFyZSBiZXR3ZWVu
IDAuLjMgPSBIZWFydHMsIFNwYWRlcywgRGlhbW9uZHMsIENsdWJzLgovLyBDYXJkIHZhbHVlcyBh
cmUgYmV0d2VlbiAwLi4xMiwgd2hlcmUgMD1Ud28sIDEyPUFjZS4KCmlubGluZSBpbnQgQ2FyZF9u
ZXcoaW50IGNvbG9yLCBpbnQgdmFsdWUpIHsKICAgIHJldHVybiA0KnZhbHVlICsgY29sb3I7IH0K
CiNkZWZpbmUgQ2FyZF9OVUxMIDUyICAgICAgICAvLyAoJ2RlY2tbXScgcmVsaWVzIG9uIHRoaXMg
dmFsdWUpCgppbmxpbmUgaW50IGNvbG9yKENhcmQgYykKewogICAgc3RhdGljIGNvbnN0IGNoYXIg
Y29sb3JbNTNdID0gewogICAgICAgIDAsIDEsIDIsIDMsCiAgICAgICAgMCwgMSwgMiwgMywKICAg
ICAgICAwLCAxLCAyLCAzLAogICAgICAgIDAsIDEsIDIsIDMsCiAgICAgICAgMCwgMSwgMiwgMywK
ICAgICAgICAwLCAxLCAyLCAzLAogICAgICAgIDAsIDEsIDIsIDMsCiAgICAgICAgMCwgMSwgMiwg
MywKICAgICAgICAwLCAxLCAyLCAzLAogICAgICAgIDAsIDEsIDIsIDMsCiAgICAgICAgMCwgMSwg
MiwgMywKICAgICAgICAwLCAxLCAyLCAzLAogICAgICAgIDAsIDEsIDIsIDMsCiAgICAgICAgLTEK
ICAgIH07CiAgICByZXR1cm4gY29sb3JbY107Cn0KCmlubGluZSBpbnQgdmFsdWUoQ2FyZCBjKQp7
CiAgICBzdGF0aWMgY29uc3QgY2hhciB2YWx1ZVs1M10gPSB7CiAgICAgICAgIDAsICAwLCAgMCwg
IDAsCiAgICAgICAgIDEsICAxLCAgMSwgIDEsCiAgICAgICAgIDIsICAyLCAgMiwgIDIsCiAgICAg
ICAgIDMsICAzLCAgMywgIDMsCiAgICAgICAgIDQsICA0LCAgNCwgIDQsCiAgICAgICAgIDUsICA1
LCAgNSwgIDUsCiAgICAgICAgIDYsICA2LCAgNiwgIDYsCiAgICAgICAgIDcsICA3LCAgNywgIDcs
CiAgICAgICAgIDgsICA4LCAgOCwgIDgsCiAgICAgICAgIDksICA5LCAgOSwgIDksCiAgICAgICAg
MTAsIDEwLCAxMCwgMTAsCiAgICAgICAgMTEsIDExLCAxMSwgMTEsCiAgICAgICAgMTIsIDEyLCAx
MiwgMTIsCiAgICAgICAgLTEKICAgIH07CiAgICByZXR1cm4gdmFsdWVbY107Cn0KCmlubGluZSBj
aGFyIGNvbG9yTmFtZShDYXJkIGMpIHsKICAgIHN0YXRpYyBjaGFyIG5hbWVbXSA9IHsgJz8nLCAn
aCcsICdzJywgJ2QnLCAnYycgfTsKICAgIHJldHVybiBuYW1lW2NvbG9yKGMpKzFdOyB9Cgppbmxp
bmUgY2hhciB2YWx1ZU5hbWUoQ2FyZCBjKQp7CiAgICBzdGF0aWMgY2hhciBuYW1lW10gPSB7ICc/
JywgJzInLCAnMycsICc0JywgJzUnLCAnNicsICc3JywgJzgnLCAnOScsICdUJywgJ0onLCAnUScs
ICdLJywgJ0EnIH07CiAgICByZXR1cm4gbmFtZVt2YWx1ZShjKSsxXTsgfQoKCi8vPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLy8gTWFpbiBzdHVmZjoKCgplbnVtIEtpbmQgewogICAga2luZF9TdEZsdXNo
ICA9IDgsICAvLyAwOnRvcCBjYXJkCiAgICBraW5kXzRLaW5kICAgID0gNywgIC8vIDA6b2Ygd2hh
dCwgMTpraWNrZXIKICAgIGtpbmRfRkhvdXNlICAgPSA2LCAgLy8gMDp0aHJlZSBvZiB3aGF0LCAx
OnR3byBvZiB3aGF0CiAgICBraW5kX0ZsdXNoICAgID0gNSwgIC8vIDAuLjQ6dmFsdWVzCiAgICBr
aW5kX1N0cmFpZ2h0ID0gNCwgIC8vIDA6dG9wIGNhcmQKICAgIGtpbmRfM0tpbmQgICAgPSAzLCAg
Ly8gMDp0aHJlZSBvZiB3aGF0LCAxLi4yOmtpY2tlcnMKICAgIGtpbmRfMlBhaXIgICAgPSAyLCAg
Ly8gMDpoaWdoIHBhaXIsIDE6bG93IHBhaXIsIDI6a2lja2VyCiAgICBraW5kX1BhaXIgICAgID0g
MSwgIC8vIDA6cGFpciwgMS4uMzpraWNrZXJzCiAgICBraW5kX05vdGhpbmcgID0gMCwgIC8vIDAu
LjQ6dmFsdWVzCn07CgoKc3RydWN0IEhhbmQgewogICAgS2luZCAgICBraW5kOwogICAgaW50ICAg
ICBwYXJhbXNbNV07ICAgICAgLy8gKHVudXNlZCBwYXJhbWV0ZXJzIGFyZSBzZXQgdG8gLTEpCn07
CgoKdm9pZCBiZXN0SGFuZChDYXJkIGNhcmRzX1s3XSwgSGFuZCYgcmVzdWx0KTsKYm9vbCBiZXR0
ZXIoY29uc3QgSGFuZCYgYSwgY29uc3QgSGFuZCYgYik7CnZvaWQgZHVtcENhcmRzKENhcmQqIGNh
cmRzLCBpbnQgbmNhcmRzID0gNywgYm9vbCBuZXdsaW5lID0gdHJ1ZSk7CmJvb2wgcGFyc2VIYW5k
KGNoYXIqIHRleHRfLCBpbnQgbmNhcmRzLCBDYXJkKiByZXN1bHQpOwoKCgovLz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLy8gQUNUVUFMIFBST0dSQU0KCgp0eXBlZGVm
IGludCBIb2xlOyAgIC8vICdmaXJzdCArIHNlY29uZCo1MicuCgppbmxpbmUgSG9sZSBobm9ybShI
b2xlIGhvbGUpIHsKICAgIGludCAgICAgZnN0ID0gaG9sZSAlIDUyOwogICAgaW50ICAgICBzbmQg
PSBob2xlIC8gNTI7CiAgICBpZiAoc25kIDwgZnN0KQogICAgICAgIHJldHVybiBob2xlOwogICAg
ZWxzZQogICAgICAgIHJldHVybiBmc3QqNTIgKyBzbmQ7Cn0KCnN0cnVjdCBIb2xlU3RhdCB7CiAg
ICBIb2xlICAgIGhvbGU7CiAgICBkb3VibGUgIFBfYmVhdDsKfTsKCmludCBIb2xlU3RhdF9jb21w
YXJlKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpeyAgICAgLy8gKGludGVudGlvbmFsbHkg
cmV2ZXJzZSBjb21wYXJlKQogICAgZG91YmxlICBBID0gKChIb2xlU3RhdCopYSktPlBfYmVhdDsK
ICAgIGRvdWJsZSAgQiA9ICgoSG9sZVN0YXQqKWIpLT5QX2JlYXQ7CiAgICByZXR1cm4gKEIgPiBB
KSAtIChBID4gQik7IH0KCgpzdHJ1Y3QgSG9sZVN0YXRfaW50ZXJuYWwgewogICAgaW50ICAgICBo
YWxmYmVhdHM7CiAgICBpbnQgICAgIG47Cn07CgoKdm9pZCBldmFsSG9sZV9mbG9wKEhvbGUgbXks
IENhcmQgY29tbXVuaXR5WzNdLAogICAgICAgICAgICAgICAgICAgSG9sZVN0YXQgcmVzdWx0WzEw
ODFdKQp7CiAgICBIb2xlU3RhdF9pbnRlcm5hbCAgIGhvbGVzWzUyKjUyXTsKCiAgICBDYXJkICAg
IG15X2hhbmRbN10sIG9wX2hhbmRbN107CiAgICBpbnQgICAgIGksIGosIHUsIHY7CiAgICBIYW5k
ICAgIG1lLCBvcDsKCiAgICBmb3IgKGkgPSAwOyBpIDwgNTIqNTI7IGkrKykKICAgICAgICBob2xl
c1tpXS5oYWxmYmVhdHMgPSAwLAogICAgICAgIGhvbGVzW2ldLm4gICAgICAgICA9IDA7CgogICAg
bXlfaGFuZFswXSA9IG15ICUgNTI7CiAgICBteV9oYW5kWzFdID0gbXkgLyA1MjsKICAgIG15X2hh
bmRbMl0gPSBvcF9oYW5kWzJdID0gY29tbXVuaXR5WzBdOwogICAgbXlfaGFuZFszXSA9IG9wX2hh
bmRbM10gPSBjb21tdW5pdHlbMV07CiAgICBteV9oYW5kWzRdID0gb3BfaGFuZFs0XSA9IGNvbW11
bml0eVsyXTsKCiAgICAvLyBGb3IgZWFjaCByaXZlcjoKICAgIGZvciAoaSA9IDA7IGkgPCA1Mjsg
aSsrKXsKICAgICAgICBpZiAoaSA9PSBteV9oYW5kWzBdIHx8IGkgPT0gbXlfaGFuZFsxXSB8fCBp
ID09IG15X2hhbmRbMl0gfHwgaSA9PSBteV9oYW5kWzNdIHx8IGkgPT0gbXlfaGFuZFs0XSkgY29u
dGludWU7CiAgICAgICAgbXlfaGFuZFs1XSA9IG9wX2hhbmRbNV0gPSBpOwoKICAgICAgICBmb3Ig
KGogPSAwOyBqIDwgaTsgaisrKXsKICAgICAgICAgICAgaWYgKGogPT0gbXlfaGFuZFswXSB8fCBq
ID09IG15X2hhbmRbMV0gfHwgaiA9PSBteV9oYW5kWzJdIHx8IGogPT0gbXlfaGFuZFszXSB8fCBq
ID09IG15X2hhbmRbNF0gfHwgaiA9PSBteV9oYW5kWzVdKSBjb250aW51ZTsKICAgICAgICAgICAg
bXlfaGFuZFs2XSA9IG9wX2hhbmRbNl0gPSBqOwoKICAgICAgICAgICAgYmVzdEhhbmQobXlfaGFu
ZCwgbWUpOwoKICAgICAgICAgICAgLy8gRm9yIGVhY2ggb3Bwb25lbnQgaG9sZToKICAgICAgICAg
ICAgZm9yICh1ID0gMDsgdSA8IDUyOyB1KyspewogICAgICAgICAgICAgICAgaWYgKHUgPT0gbXlf
aGFuZFswXSB8fCB1ID09IG15X2hhbmRbMV0gfHwgdSA9PSBteV9oYW5kWzJdIHx8IHUgPT0gbXlf
aGFuZFszXSB8fCB1ID09IG15X2hhbmRbNF0gfHwgdSA9PSBteV9oYW5kWzVdIHx8IHUgPT0gbXlf
aGFuZFs2XSkgY29udGludWU7CiAgICAgICAgICAgICAgICBvcF9oYW5kWzBdID0gdTsKCiAgICAg
ICAgICAgICAgICBmb3IgKHYgPSAwOyB2IDwgdTsgdisrKXsKICAgICAgICAgICAgICAgICAgICBp
ZiAodiA9PSBteV9oYW5kWzBdIHx8IHYgPT0gbXlfaGFuZFsxXSB8fCB2ID09IG15X2hhbmRbMl0g
fHwgdiA9PSBteV9oYW5kWzNdIHx8IHYgPT0gbXlfaGFuZFs0XSB8fCB2ID09IG15X2hhbmRbNV0g
fHwgdiA9PSBteV9oYW5kWzZdIHx8IHYgPT0gb3BfaGFuZFswXSkgY29udGludWU7CiAgICAgICAg
ICAgICAgICAgICAgb3BfaGFuZFsxXSA9IHY7CgogICAgICAgICAgICAgICAgICAgIGJlc3RIYW5k
KG9wX2hhbmQsIG9wKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKGJldHRlcihvcCwgbWUpKQog
ICAgICAgICAgICAgICAgICAgICAgICBob2xlc1t1KzUyKnZdLmhhbGZiZWF0cyArPSAyOwogICAg
ICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFiZXR0ZXIobWUsIG9wKSkKICAgICAgICAgICAgICAg
ICAgICAgICAgaG9sZXNbdSs1Mip2XS5oYWxmYmVhdHMgKz0gMTsKICAgICAgICAgICAgICAgICAg
ICBob2xlc1t1KzUyKnZdLm4rKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAg
ICAgIH0KICAgIH0KCiAgICBqID0gMDsKICAgIGZvciAoaSA9IDA7IGkgPCA1Mio1MjsgaSsrKXsK
ICAgICAgICBpZiAoaG9sZXNbaV0ubiA+IDApewogICAgICAgICAgICBhc3NlcnQoaiA8IDEwODEp
OwogICAgICAgICAgICByZXN1bHRbal0uaG9sZSAgID0gaTsKICAgICAgICAgICAgcmVzdWx0W2pd
LlBfYmVhdCA9IChkb3VibGUpaG9sZXNbaV0uaGFsZmJlYXRzIC8gKDIqaG9sZXNbaV0ubik7CiAg
ICAgICAgICAgIGorKzsKICAgICAgICB9CiAgICB9CiAgICBhc3NlcnQoaiA9PSAxMDgxKTsKfQoK
Ci8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKCmVudW0gRXh0Q29s
b3IgewogICAgeGNfSGVhcnRzICAgPSAwLAogICAgeGNfU3BhZGVzICAgPSAxLAogICAgeGNfRGlh
bW9uZHMgPSAyLAogICAgeGNfQ2x1YnMgICAgPSAzLAogICAgeGNfQnV0SGVhcnRzLAogICAgeGNf
QnV0U3BhZGVzLAogICAgeGNfQnV0RGlhbW9uZHMsCiAgICB4Y19CdXRDbHVicywKICAgIHhjX0Fu
eSwKfTsKCnN0cnVjdCBFeHRWYWx1ZSB7CiAgICBpbnQgICAgIGZyb207CiAgICBpbnQgICAgIHRv
Owp9OwoKc3RydWN0IEV4dENhcmQgewogICAgRXh0Q29sb3IgICAgeGNvbG9yOwogICAgRXh0VmFs
dWUgICAgeHZhbHVlOwp9OwoKc3RydWN0IEV4dEhvbGUgewogICAgRXh0Q2FyZCBmc3Q7CiAgICBF
eHRDYXJkIHNuZDsKfTsKCiNkZWZpbmUgY19FeGNsdWRlICAwCiNkZWZpbmUgY19JbmNsdWRlICAx
CiNkZWZpbmUgY19Eb250Y2FyZSAyCgoKc3RhdGljCkV4dEhvbGUgZXh0X2luamVjdChIb2xlIGhv
bGUpCnsKICAgIEV4dEhvbGUgeGhvbGU7CgogICAgeGhvbGUuZnN0Lnh2YWx1ZS5mcm9tID0gdmFs
dWUoaG9sZSAlIDUyKTsKICAgIHhob2xlLmZzdC54dmFsdWUudG8gICA9IHZhbHVlKGhvbGUgJSA1
Mik7CiAgICB4aG9sZS5mc3QueGNvbG9yICAgICAgPSAoRXh0Q29sb3IpY29sb3IoaG9sZSAlIDUy
KTsKCiAgICB4aG9sZS5zbmQueHZhbHVlLmZyb20gPSB2YWx1ZShob2xlIC8gNTIpOwogICAgeGhv
bGUuc25kLnh2YWx1ZS50byAgID0gdmFsdWUoaG9sZSAvIDUyKTsKICAgIHhob2xlLnNuZC54Y29s
b3IgICAgICA9IChFeHRDb2xvciljb2xvcihob2xlIC8gNTIpOwoKICAgIHJldHVybiB4aG9sZTsK
fQoKCnN0YXRpYwpFeHRIb2xlIGV4dF93aWRlblJhbmdlKEV4dEhvbGUgeGhvbGUsIGNoYXIgaG9s
ZV9zdGF0WzUyKjUyXSkKewogICAgcmV0dXJuIHhob2xlOwp9CgoKc3RhdGljCkV4dEhvbGUgZXh0
X3dpZGVuQ29sb3IoRXh0SG9sZSB4aG9sZSwgY2hhciBob2xlX3N0YXRbNTIqNTJdKQp7CiAgICBp
bnQgICAgIGksIGo7CiAgICBpbnQgICAgIG1hc2sgPSAweEZGRkY7CgogICAgZm9yIChpID0geGhv
bGUuZnN0Lnh2YWx1ZS5mcm9tOyBpIDw9IHhob2xlLmZzdC54dmFsdWUudG87IGkrKyl7CiAgICAg
ICAgZm9yIChqID0geGhvbGUuc25kLnh2YWx1ZS5mcm9tOyBqIDw9IHhob2xlLnNuZC54dmFsdWUu
dG87IGorKykKICAgICAgICAgICAgbWFzayAmPSAgKGhvbGVfc3RhdFtobm9ybShpKjQrMCArIDUy
KihqKjQrMCkpXSAhPSBjX0V4Y2x1ZGUpCiAgICAgICAgICAgICAgICAgIHwgKChob2xlX3N0YXRb
aG5vcm0oaSo0KzAgKyA1Miooaio0KzEpKV0gIT0gY19FeGNsdWRlKSA8PCAgMSkKICAgICAgICAg
ICAgICAgICAgfCAoKGhvbGVfc3RhdFtobm9ybShpKjQrMCArIDUyKihqKjQrMikpXSAhPSBjX0V4
Y2x1ZGUpIDw8ICAyKQogICAgICAgICAgICAgICAgICB8ICgoaG9sZV9zdGF0W2hub3JtKGkqNCsw
ICsgNTIqKGoqNCszKSldICE9IGNfRXhjbHVkZSkgPDwgIDMpCiAgICAgICAgICAgICAgICAgIHwg
KChob2xlX3N0YXRbaG5vcm0oaSo0KzEgKyA1Miooaio0KzApKV0gIT0gY19FeGNsdWRlKSA8PCAg
NCkKICAgICAgICAgICAgICAgICAgfCAoKGhvbGVfc3RhdFtobm9ybShpKjQrMSArIDUyKihqKjQr
MSkpXSAhPSBjX0V4Y2x1ZGUpIDw8ICA1KQogICAgICAgICAgICAgICAgICB8ICgoaG9sZV9zdGF0
W2hub3JtKGkqNCsxICsgNTIqKGoqNCsyKSldICE9IGNfRXhjbHVkZSkgPDwgIDYpCiAgICAgICAg
ICAgICAgICAgIHwgKChob2xlX3N0YXRbaG5vcm0oaSo0KzEgKyA1Miooaio0KzMpKV0gIT0gY19F
eGNsdWRlKSA8PCAgNykKICAgICAgICAgICAgICAgICAgfCAoKGhvbGVfc3RhdFtobm9ybShpKjQr
MiArIDUyKihqKjQrMCkpXSAhPSBjX0V4Y2x1ZGUpIDw8ICA4KQogICAgICAgICAgICAgICAgICB8
ICgoaG9sZV9zdGF0W2hub3JtKGkqNCsyICsgNTIqKGoqNCsxKSldICE9IGNfRXhjbHVkZSkgPDwg
IDkpCiAgICAgICAgICAgICAgICAgIHwgKChob2xlX3N0YXRbaG5vcm0oaSo0KzIgKyA1Miooaio0
KzIpKV0gIT0gY19FeGNsdWRlKSA8PCAxMCkKICAgICAgICAgICAgICAgICAgfCAoKGhvbGVfc3Rh
dFtobm9ybShpKjQrMiArIDUyKihqKjQrMykpXSAhPSBjX0V4Y2x1ZGUpIDw8IDExKQogICAgICAg
ICAgICAgICAgICB8ICgoaG9sZV9zdGF0W2hub3JtKGkqNCszICsgNTIqKGoqNCswKSldICE9IGNf
RXhjbHVkZSkgPDwgMTIpCiAgICAgICAgICAgICAgICAgIHwgKChob2xlX3N0YXRbaG5vcm0oaSo0
KzMgKyA1Miooaio0KzEpKV0gIT0gY19FeGNsdWRlKSA8PCAxMykKICAgICAgICAgICAgICAgICAg
fCAoKGhvbGVfc3RhdFtobm9ybShpKjQrMyArIDUyKihqKjQrMikpXSAhPSBjX0V4Y2x1ZGUpIDw8
IDE0KQogICAgICAgICAgICAgICAgICB8ICgoaG9sZV9zdGF0W2hub3JtKGkqNCszICsgNTIqKGoq
NCszKSldICE9IGNfRXhjbHVkZSkgPDwgMTUpOwogICAgfQoKLyoqL3ByaW50ZigiJWRcbiIsIG1h
c2spOwogICAgcmV0dXJuIHhob2xlOwp9CgoKc3RhdGljCmludCBleHRfY29tcGFyZShFeHRIb2xl
IGgxLCBFeHRIb2xlIGgyKSB7CiAgICByZXR1cm4gbWVtY21wKCZoMSwgJmgyLCBzaXplb2YoRXh0
SG9sZSkpOyB9CgoKc3RhdGljCnZvaWQgZ3JvdXBDYXJkcyh2ZWM8SG9sZT4gaW5jbHVkZSwgdmVj
PEhvbGU+IGRvbnRjYXJlcywKICAgICAgICAgICAgICAgIHZlYzxFeHRIb2xlPiYgcmVzdWx0KQp7
CiAgICBjaGFyICAgICAgICAgICAgaG9sZV9zdGF0WzUyKjUyXTsKICAgIHZlYzxFeHRIb2xlPiAg
ICBjYW5kaWRhdGVzOwoKICAgIGludCAgICAgaTsKCiAgICAvLyBJbml0aWFsaXplIGhvbGUgc3Rh
dHMKCiAgICBmb3IgKGkgPSAwOyBpIDwgNTIqNTI7IGkrKykKICAgICAgICBob2xlX3N0YXRbaV0g
PSBjX0V4Y2x1ZGU7CiAgICBmb3IgKGkgPSAwOyBpIDwgaW5jbHVkZS5zaXplKCk7IGkrKykKICAg
ICAgICBob2xlX3N0YXRbaG5vcm0oaW5jbHVkZVtpXSldID0gY19JbmNsdWRlOwogICAgZm9yIChp
ID0gMDsgaSA8IGRvbnRjYXJlcy5zaXplKCk7IGkrKykKICAgICAgICBhc3NlcnQoaG9sZV9zdGF0
W2hub3JtKGRvbnRjYXJlc1tpXSldID09IGNfRXhjbHVkZSksCiAgICAgICAgaG9sZV9zdGF0W2hu
b3JtKGRvbnRjYXJlc1tpXSldID0gY19Eb250Y2FyZTsKCiAgICAvLyBHZW5lcmF0ZSBjYW5kaWRh
dGVzCgogICAgZm9yIChpID0gMDsgaSA8IGluY2x1ZGUuc2l6ZSgpOyBpKyspewogICAgICAgIEV4
dEhvbGUgYWx0MSA9IGV4dF93aWRlblJhbmdlKGV4dF93aWRlbkNvbG9yKGV4dF9pbmplY3QoaW5j
bHVkZVtpXSksIGhvbGVfc3RhdCksIGhvbGVfc3RhdCk7CiAgICAgICAgRXh0SG9sZSBhbHQyID0g
ZXh0X3dpZGVuQ29sb3IoZXh0X3dpZGVuUmFuZ2UoZXh0X2luamVjdChpbmNsdWRlW2ldKSwgaG9s
ZV9zdGF0KSwgaG9sZV9zdGF0KTsKICAgICAgICBjYW5kaWRhdGVzLnB1c2goYWx0MSk7CiAgICAg
ICAgaWYgKGV4dF9jb21wYXJlKGFsdDEsIGFsdDIpICE9IDApCiAgICAgICAgICAgIGNhbmRpZGF0
ZXMucHVzaChhbHQyKTsKICAgIH0KCiAgICAvLyBDaG9vc2UgZ29vZCBjb3ZlcmluZyBzdWJzZXQK
Cgp9CgoKI2lmIDEKCmludCBtYWluKHZvaWQpCnsKICAgIEhvbGVTdGF0ICAgIHJlc3VsdFsxMDgx
XTsKCiAgICBDYXJkICAgIGhvbGUgICAgIFsyXSA9IHsgMzcsIDI3IH07CiAgICBDYXJkICAgIGNv
bW11bml0eVszXSA9IHsgNTAsIDQsIDEwIH07CgogICAgZXZhbEhvbGVfZmxvcChob2xlWzBdKjUy
K2hvbGVbMV0sIGNvbW11bml0eSwgcmVzdWx0KTsKCiAgICBwcmludGYoIkhPTEUgIDogIik7IGR1
bXBDYXJkcyhob2xlLCAyKTsKICAgIHByaW50ZigiQ09NTU9OOiAiKTsgZHVtcENhcmRzKGNvbW11
bml0eSwgMyk7CiAgICBwcmludGYoIlxuUkVTVUxUOlxuPT09PT09PT09PT09PT09PT09PT0iKTsK
CiAgICBxc29ydChyZXN1bHQsIDEwODEsIHNpemVvZihIb2xlU3RhdCksIEhvbGVTdGF0X2NvbXBh
cmUpOwogICAgZG91YmxlIGxhc3QgPSAtMTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTA4MTsg
aSsrKXsKICAgICAgICBpZiAocmVzdWx0W2ldLlBfYmVhdCAhPSBsYXN0KXsKICAgICAgICAgICAg
bGFzdCA9IHJlc3VsdFtpXS5QX2JlYXQ7CiAgICAgICAgICAgIHByaW50ZigiXG4lMy4xZiUlIDog
IiwgcmVzdWx0W2ldLlBfYmVhdCAqIDEwMCk7IH0KICAgICAgICBob2xlWzBdID0gcmVzdWx0W2ld
LmhvbGUgJSA1MjsKICAgICAgICBob2xlWzFdID0gcmVzdWx0W2ldLmhvbGUgLyA1MjsKICAgICAg
ICBwcmludGYoIlsiKTsgZHVtcENhcmRzKGhvbGUsIDIsIGZhbHNlKTsgcHJpbnRmKCJdICIpOwog
ICAgfQogICAgcHJpbnRmKCJcbiIpOwoKICAgIHJldHVybiAwOwp9CgojZWxzZQoKaW50IG1haW4o
dm9pZCkKewogICAgQ2FyZCAgICBjYXJkc1s3XTsKICAgIEhhbmQgICAgcmVzdWx0OwoKICAgIHBh
cnNlSGFuZCgic0ogYzggZEEgaDMgZDQgczIgczUiLCA3LCBjYXJkcyk7CiAgICBiZXN0SGFuZChj
YXJkcywgcmVzdWx0KTsKICAgIHByaW50ZigiJWQgOiAlZCAlZCAlZCAlZCAlZFxuIiwgcmVzdWx0
LmtpbmQsIHJlc3VsdC5wYXJhbXNbMF0sIHJlc3VsdC5wYXJhbXNbMV0sIHJlc3VsdC5wYXJhbXNb
Ml0sIHJlc3VsdC5wYXJhbXNbM10sIHJlc3VsdC5wYXJhbXNbNF0pOwoKICAgIHBhcnNlSGFuZCgi
ZDMgczMgZEEgaDMgZDQgczIgczUiLCA3LCBjYXJkcyk7CiAgICBiZXN0SGFuZChjYXJkcywgcmVz
dWx0KTsKICAgIHByaW50ZigiJWQgOiAlZCAlZCAlZCAlZCAlZFxuIiwgcmVzdWx0LmtpbmQsIHJl
c3VsdC5wYXJhbXNbMF0sIHJlc3VsdC5wYXJhbXNbMV0sIHJlc3VsdC5wYXJhbXNbMl0sIHJlc3Vs
dC5wYXJhbXNbM10sIHJlc3VsdC5wYXJhbXNbNF0pOwoKICAgIHJldHVybiAwOwp9CgojZW5kaWYK



More information about the Gcc-bugs mailing list