c++/1034: unknown compiler error

tcheadle@gmu.edu tcheadle@gmu.edu
Sun Dec 10 21:36:00 GMT 2000


>Number:         1034
>Category:       c++
>Synopsis:       unknown compiler error
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Dec 10 21:36:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     tcheadle@gmu.edu
>Release:        gcc version 2.95.2 19991024 (release)
>Organization:
>Environment:
osf1.gmu.edu> set
argv	()
cwd	/home/u5/tcheadle/src/p4
edithist	
editmode	vi
gid	5041
history	20
home	/home/u5/tcheadle
mail	/usr/spool/mail/tcheadle
notify	
path	(/home/u5/tcheadle/bin /usr/bin /usr/local/bin .)
pid	22127
prompt	osf1.gmu.edu> 
prompt2	? 
savehist	200
shell	/bin/csh
shlvl	1
status	0
system	osf1
term	vt100
tty	ttys9
uid	55531
user	tcheadle
version	csh 2.0
>Description:
Compiler fails.  I have no idea why.  This was from a simple CS project involving graph algorithms.  Here's the error:

osf1.gmu.edu> make
g++ -Wall -g -O -c graph.cc -o graph.o
g++ -Wall -g -O graph.o roadmap.cc -o roadmap
graph.cc: In method `void Graph<Costs>::dijkstra(const basic_string<char,string_char_traits<char>,__default_alloc_template<false,0> > &, double (*)(const Costs &))':
roadmap.cc:151:   instantiated from here
graph.cc:375: Internal compiler error.
graph.cc:375: Please submit a full bug report.
graph.cc:375: See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions.
*** Exit 1
Stop.

>How-To-Repeat:

>Fix:

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

LyoKICoKICogJEhlYWRlcjogL2hvbWUvc2Vzc2lvbi9zcmMvcDQvUkNTL2dyYXBoLmNjLHYgMS40
IDIwMDAvMTIvMTEgMDQ6NTA6MzIgc2Vzc2lvbiBFeHAgJAogKgogKiAkTG9nOiBncmFwaC5jYyx2
ICQKICogUmV2aXNpb24gMS40ICAyMDAwLzEyLzExIDA0OjUwOjMyICBzZXNzaW9uCiAqIGV2ZXJ5
dGhpbmcgd29ya3MhICBmaW5hbCByZXZpc2lvbi4KICoKICogUmV2aXNpb24gMS4zICAyMDAwLzEy
LzEwIDIyOjAxOjQ5ICBzZXNzaW9uCiAqIGFkZGVkIGV2ZXJ5IGZ1bmN0aW9uIGJ1dCByZW1vdmVf
ZWRnZSgpLCB0b3BvbG9naWNhbF9zb3J0KCksIGFuZCBkaWprc3RyYSgpLgogKgogKiBSZXZpc2lv
biAxLjIgIDIwMDAvMTIvMDkgMTc6MzQ6MTMgIHNlc3Npb24KICogYWRkZWQgc29tZSBtb3JlIGZ1
bmN0aW9uczsgb25seSB0aGUgdHJhdmVyc2FscyBuZWVkIHRvIGJlIGNvbXBsZXRlZCBub3cuCiAq
CiAqIFJldmlzaW9uIDEuMSAgMjAwMC8xMi8wOCAyMzowNDoyMCAgc2Vzc2lvbgogKiBJbml0aWFs
IHJldmlzaW9uCiAqCiAqCiAqIHRpbSBjaGVhZGxlCiAqIHRjaGVhZGxlQGdtdS5lZHUKICoKICoK
ICogR3JhcGggY2xhc3MKICoKICogVGhpcyBwcm92aWRlcyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNz
IG9mIHRoZSBncmFwaAogKiBkYXRhIHN0cnVjdHVyZS4gIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25z
IGFyZSBpbXBsZW1lbnRlZDoKICoKICogICAtIH5HcmFwaCgpCQkJLSBDbGFzcyBkZXN0cnVjdG9y
CiAqICAgLSBhZGRfdmVydGV4KCkJCS0gQWRkIGEgVmVydGV4IHRvIHRoZSBncmFwaAogKiAgIC0g
ZGZzKCkJCQktIERlcHRoLWZpcnN0IHNlYXJjaAogKiAgIC0gYmZzKCkJCQktIEJyZWFkdGgtZmly
c3Qgc2VhcmNoCiAqICAgLSBkaWprc3RyYSgpCQktIERpamtzdHJhJ3MgYWxnb3JpdGhtCiAqICAg
LSBpc19jb25uZWN0ZWQoKQktIFdoZXRoZXIgb3Igbm90IHRoZSBncmFwaCBpcyBmdWxseSBjb25u
ZWN0ZWQKICogICAtIHByaW50X3BhdGgoKQkJLSBQcmludHMgdGhlIHBhdGggZnJvbSBzdGFydCBW
ZXJ0ZXggdG8gYW5vdGhlcgogKgkJCQkJCSAgKENhbGxlZCBhZnRlciBkaWprc3RyYSgpKQogKiAg
IC0gZWRnZV9uYW1lKCkJCS0gUmV0dXJucyB0aGUgbmFtZSBvZiBFZGdlIGJldHdlZW4gMiB2ZXJ0
aWNlcyAoaWYgZXhpc3RzKQogKiAgIC0gcHJpbnRfdmVydGljZXMoKQktIFByaW50cyB0aGUgbmFt
ZXMgb2YgYWxsIHZlcnRpY2VzCiAqICAgLSBzaXplKCkJCQktIFJldHVybnMgdGhlIG51bWJlciBv
ZiB2ZXJ0aWNlcyBpbiB0aGUgZ3JhcGgKICovCgojaWZuZGVmIF9HUkFQSF8KI2RlZmluZSBfR1JB
UEhfCgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxzZXQ+CiNpbmNsdWRlIDxtYXA+CiNp
bmNsdWRlIDxsaXN0PgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KI2lu
Y2x1ZGUgPGFsZ29yaXRobT4KCgojZGVmaW5lIElORklOSVRZIDk5OTk5OQoKLy8KLy8gVmVydGV4
IGFuZCBFZGdlIGRlZmluaXRpb25zCi8vCgp0ZW1wbGF0ZSA8Y2xhc3MgVz4Kc3RydWN0IFZlcnRl
eDsgICAgICAgLy9mb3J3YXJkIGRlZmluaXRpb24KCnRlbXBsYXRlIDxjbGFzcyBXPgpzdHJ1Y3Qg
RWRnZSAKewogCVZlcnRleCA8Vz4gKmVuZHY7ICAgLy8gcG9pbnRlciB0byBlbmQgdmVydGV4Cglz
dHJpbmcgbmFtZTsgICAgICAgICAvLyBFZGdlIG5hbWUKCVcgY29zdDsgICAgICAgICAgICAgLy8g
d2VpZ2h0KHMpIHRvIHRyYXZlcnNlIEVkZ2UgYnkgdmFyaW91cyBtZWFucwoJCgkvLyBDb25zdHJ1
Y3RvcgoJRWRnZShjb25zdCBzdHJpbmcgJm4gPSAiIiwgVmVydGV4PFc+ICpkID0gTlVMTCwgY29u
c3QgVyAmd3QgPSBXKCkpCgl7CgkJbmFtZSA9IG47CgkJZW5kdiA9IGQ7CgkJY29zdCA9IHd0OwoJ
fQoJCglib29sIG9wZXJhdG9yIDwgKGNvbnN0IEVkZ2UgJnJocykgY29uc3QKCXsKCQlyZXR1cm4g
bmFtZSA8IHJocy5uYW1lOwoJfQoKfTsKCgp0ZW1wbGF0ZSAgPGNsYXNzIFc+CnN0cnVjdCBWZXJ0
ZXggewoJc3RyaW5nIG5hbWU7ICAgICAgICAgIC8vIG5hbWUKCXNldCA8RWRnZSA8Vz4gPiBhZGo7
ICAgLy8gc2V0IG9mIGVkZ2VzCglkb3VibGUgY29zdDsgICAgICAgICAgLy8gbmV4dCAzIHVzZWQg
aW4gRGlrc3RyYSwgb3RoZXIgYWxnbwoJVmVydGV4ICpwYXJlbnQ7CglpbnQgdmlzaXRlZDsgCgkK
CS8vIENvbnN0cnVjdG9yICAgICAgCglWZXJ0ZXgoY29uc3Qgc3RyaW5nJiBuKQoJewoJCW5hbWUg
PSBuOwoJCXJlc2V0KCk7Cgl9CgkKCXZvaWQgcmVzZXQgKCkKCXsKCQljb3N0PUlORklOSVRZOwoJ
CXBhcmVudCA9IE5VTEw7CgkJdmlzaXRlZCA9IDA7Cgl9Cn07CgoKCgovLwovLyBHcmFwaCBjbGFz
cyBkZWZpbnRpb24KLy8KCnRlbXBsYXRlIDxjbGFzcyBXPgpjbGFzcyBHcmFwaAp7CglwdWJsaWM6
CgkJR3JhcGgoKSB7fTsKCQl+R3JhcGgoKTsKCQkKCQl2b2lkIGFkZF92ZXJ0ZXgoY29uc3Qgc3Ry
aW5nJiBsYWJlbCk7CgkJCgkJdm9pZCBkZnMgKGNvbnN0IHN0cmluZyAmc3RhcnRfbmFtZSwgYm9v
bCBkb19wcmludD10cnVlKTsgLy9kZXB0aCBmaXJzdCBzZWFyY2gKCQl2b2lkIGJmcyAoY29uc3Qg
c3RyaW5nICZzdGFydF9uYW1lLCBib29sIGRvX3ByaW50PXRydWUpOyAvLyBicmVhZHRoIGZpcnN0
IHNlYXJjaAoJCQoJCXZvaWQgZGlqa3N0cmEgKGNvbnN0IHN0cmluZyAmc3RhcnRfbmFtZSwgZG91
YmxlIGYoY29uc3QgVyAmd3QpKTsKCQl2b2lkIHByaW50X3BhdGggKGNvbnN0IHN0cmluZyAmZW5k
X25hbWUpOyAKICAgICAKCQl2b2lkIHByaW50X3ZlcnRpY2VzKGJvb2wgcHJpbnRfZWRnZXM9dHJ1
ZSk7CgkJc3RyaW5nIGVkZ2VfbmFtZSAoY29uc3Qgc3RyaW5nJiBzdGFydF9uYW1lLCAgY29uc3Qg
c3RyaW5nJiBlbmRfbmFtZSk7CgkJaW50IHNpemUoKSBjb25zdDsgICAvLyB0aGUgIyBvZiBub2Rl
cyBpbiB0aGUgZ3JhcGgKCQkKCQkvLyBNdXN0IGJlIHJlZGVmaW5lZCBpbiBpbmhlcml0ZWQgY2xh
c3NlcwoJCXZvaWQgYWRkX2VkZ2UgKGNvbnN0IHN0cmluZyAmbGFiZWwsIGNvbnN0IHN0cmluZyAm
c3RhcnRfbmFtZSwgY29uc3Qgc3RyaW5nICZlbmRfbmFtZSwgY29uc3QgVyYgd3QpOwoJCXZvaWQg
cmVtb3ZlX2VkZ2UgKGNvbnN0IHN0cmluZyAmbGFiZWwsIGNvbnN0IHN0cmluZyAmc3RhcnRfbmFt
ZSwgY29uc3Qgc3RyaW5nICZlbmRfbmFtZSA9ICIiKTsKCQlib29sIGlzX2Nvbm5lY3RlZCgpOwoJ
CQoJCWZyaWVuZCBvc3RyZWFtICYgb3BlcmF0b3IgPDwgKG9zdHJlYW0gJm91dHMsIEdyYXBoPFc+
IHJocykge30KCQlmcmllbmQgaXN0cmVhbSAmIG9wZXJhdG9yID4+IChpc3RyZWFtICZvdXRzLCBH
cmFwaDxXPiByaHMpIHt9CgkgCglwcm90ZWN0ZWQ6CgkJdHlwZWRlZiBtYXAgPHN0cmluZywgVmVy
dGV4PFc+Kj4gVmVydGV4X21hcDsKCQlWZXJ0ZXhfbWFwIHZlcnRpY2VzOwoKCQl2b2lkIHJfZGZz
KFZlcnRleDxXPiAqcm9vdCwgYm9vbCBkb19wcmludCk7IC8vIFJlY3Vyc2l2ZSBkZXB0aC1maXJz
dCBzZWFyY2gKCQkKCQl2b2lkIHJlbGF4KFZlcnRleDxXPiAqc3RhcnQsIFZlcnRleDxXPiAqZW5k
LCBkb3VibGUgd2VpZ2h0KTsKCQkKCQlWZXJ0ZXg8Vz4gKmZpbmRfdmVydGV4KGNvbnN0IHN0cmlu
ZyAmdmVydGV4X25hbWUpOwoJCXZvaWQgY2xlYXIoKTsgIC8vIHJlc2V0cyBkaXN0LCBwcmV2IGFu
ZCB2aXNpdGVkIG9mIGFsbCB2ZXJ0aWNlcwoJCQoJCUdyYXBoKGNvbnN0IEdyYXBoICYgcmhzKSB7
fSAgLy9kaXNhYmxlICoqKiA/ICoqKgoJCWNvbnN0IEdyYXBoJiBvcGVyYXRvciA9IChjb25zdCBH
cmFwaCAmIHJocykgeyByZXR1cm4gKnRoaXM7fSAvL2Rpc2FibGUgKioqID8gKioqCn07CgoKCgov
LwovLyBHcmFwaDxXPjo6fkdyYXBoPFc+KCkKLy8gICAgLSBEZXN0cnVjdG9yIChjbGVhbnMgdXAg
dGhlIHZlcnRpY2VzKQovLwovLyBJTlBVVFMgOiBub25lCi8vIE9VVFBVVFM6IG5vbmUKLy8KdGVt
cGxhdGUgPGNsYXNzIFc+CkdyYXBoPFc+Ojp+R3JhcGgoKQp7Cglmb3IoVmVydGV4X21hcDo6aXRl
cmF0b3IgaXRyID0gdmVydGljZXMuYmVnaW4oKTsgaXRyICE9IHZlcnRpY2VzLmVuZCgpOyArK2l0
cikKCQlkZWxldGUgaXRyLT5zZWNvbmQ7Cn0KCgoKCgoKLy8KLy8gR3JhcGg8Vz46OmRmcyhjb25z
dCBzdHJpbmcgJnN0YXJ0X25hbWUpCi8vICAgIC0gUGVyZm9ybXMgYSBkZXB0aC1maXJzdCBzZWFy
Y2gsIHN0YXJ0aW5nIGF0IHN0YXJ0X25hbWUKLy8KLy8gSU5QVVRTIDogbmFtZSBvZiB2ZXJ0ZXgg
KHN0cmluZykgdG8gc3RhcnQgdGhlIHNlYXJjaCBhdCwgVFJVRS9GQUxTRSB0byBwcmludCBvciBu
b3QKLy8gT1VUUFVUUzogbm9uZQovLwp0ZW1wbGF0ZSA8Y2xhc3MgVz4Kdm9pZCBHcmFwaDxXPjo6
ZGZzKGNvbnN0IHN0cmluZyAmc3RhcnRfbmFtZSwgYm9vbCBkb19wcmludCkKewoJLy8gVHJ5IHRv
IGZpbmQgYSB2ZXJ0ZXggd2l0aCB0aGUgZ2l2ZW4gbmFtZQoJVmVydGV4PFc+ICpyb290ID0gZmlu
ZF92ZXJ0ZXgoc3RhcnRfbmFtZSk7CgkKCS8vIElmIGl0J3MgZm91bmQsIHN0YXJ0IHRoZSByZWN1
cnNpdmUgdHJhdmVyc2FsCglpZiAocm9vdCAhPSBOVUxMKQoJewoJCXJfZGZzKHJvb3QsIGRvX3By
aW50KTsKCQlpZiAoZG9fcHJpbnQpIHsKCQkJY291dCA8PCBlbmRsOwoJCQljbGVhcigpOwkgLy8g
V2UgcHJvYmFibHkgd2FudCB0byBjbGVhciB0aGlzIGlmIHdlJ3JlIHByaW50aW5nCgkJfQkJCQkv
LyBTaW5jZSB0aGUgb25seSB0aW1lIHdlIGRvbnQgd2FudCB0byBpcyB3aGVuIHdlIGRvIGlzX2Nv
bm5lY3RlZCgpCgl9CgllbHNlCgkJaWYgKGRvX3ByaW50KSBjb3V0IDw8ICJERlM6IE5vIHN1Y2gg
c291cmNlIHZlcnRleCBcIiIgPDwgc3RhcnRfbmFtZSA8PCAiXCJcblxuIjsKCQoJcmV0dXJuOwp9
Cgp0ZW1wbGF0ZSA8Y2xhc3MgVz4Kdm9pZCBHcmFwaDxXPjo6cl9kZnMoVmVydGV4PFc+ICpyb290
LCBib29sIGRvX3ByaW50KQp7CgkvLyBJZiB2ZXJ0ZXggaXMgZ2l2ZW4sIHByaW50IGl0c2VsZiBh
bmQgYXR0ZW1wdCB0byB0cmF2ZWwgZG93biBpdHMgYWRqYWNlbnQgZWRnZXMKCWlmIChyb290ICE9
IE5VTEwgJiYgcm9vdC0+dmlzaXRlZCA8PSAwKQoJewoJCWlmIChkb19wcmludCkgY291dCA8PCBy
b290LT5uYW1lIDw8ICIsICI7CgkJcm9vdC0+dmlzaXRlZCsrOwoJCQoJCS8vIEdvIGRvd24gYWxs
IHRoZSBlZGdlcwoJCWZvcihzZXQ8RWRnZTxXPiA+OjppdGVyYXRvciBpdHIgPSByb290LT5hZGou
YmVnaW4oKTsgaXRyICE9IHJvb3QtPmFkai5lbmQoKTsgKytpdHIpCgkJewoJCQlyX2RmcyhpdHIt
PmVuZHYsIGRvX3ByaW50KTsKCQl9Cgl9CglyZXR1cm47Cn0KCgoKCgoKCi8vCi8vIEdyYXBoPFc+
OjpiZnMoY29uc3Qgc3RyaW5nICZzdGFydF9uYW1lKQovLyAgICAtIFBlcmZvcm1zIGEgYnJlYWR0
aC1maXJzdCBzZWFyY2gsIHN0YXJ0aW5nIGF0IHN0YXJ0X25hbWUKLy8KLy8gSU5QVVRTIDogbmFt
ZSBvZiB2ZXJ0ZXggKHN0cmluZykgdG8gc3RhcnQgdGhlIHNlYXJjaCBhdCwgVFJVRS9GQUxTRSB0
byBwcmludCBvciBub3QKLy8gT1VUUFVUUzogbm9uZQovLwp0ZW1wbGF0ZSA8Y2xhc3MgVz4Kdm9p
ZCBHcmFwaDxXPjo6YmZzKGNvbnN0IHN0cmluZyAmc3RhcnRfbmFtZSwgYm9vbCBkb19wcmludCkK
ewoJLy8gVHJ5IHRvIGZpbmQgYSB2ZXJ0ZXggd2l0aCB0aGUgZ2l2ZW4gbmFtZQoJVmVydGV4PFc+
ICpyb290ID0gZmluZF92ZXJ0ZXgoc3RhcnRfbmFtZSk7CgkKCS8vIElmIGl0J3MgZm91bmQsIHN0
YXJ0IHRoZSByZWN1cnNpdmUgdHJhdmVyc2FsCglpZiAocm9vdCAhPSBOVUxMKQoJewoJCXR5cGVk
ZWYgbGlzdDxWZXJ0ZXg8Vz4qID4gUXVldWU7CgkJUXVldWUgcXVldWU7CgkJCgkJVmVydGV4PFc+
ICp0bXAgPSBOVUxMOwoJCQoJCS8vIEVucXVldWUgdGhlIHJvb3QKCQlxdWV1ZS5wdXNoX2JhY2so
cm9vdCk7CgkJCgkJLy8gV2hpbGUgdGhlcmUgYXJlIG5vZGVzIHRvIHZpc2l0LCB2aXNpdCB0aGVt
IGFuZCBlbnF1ZXVlIHRoZWlyIGNoaWxkcmVuCgkJd2hpbGUoIXF1ZXVlLmVtcHR5KCkpCgkJewoJ
CQl0bXAgPSBxdWV1ZS5mcm9udCgpOwoJCQlxdWV1ZS5wb3BfZnJvbnQoKTsKCQkJCgkJCS8vIElm
IHRoZSBub2RlIGhhcyBub3QgYmVlbiB2aXNpdGVkLCBwcmludCBpdCBhbmQgZW5xdWV1ZSBpdCdz
IGtpZHMKCQkJaWYgKHRtcC0+dmlzaXRlZCA8PSAwKQoJCQl7CgkJCQlpZiAoZG9fcHJpbnQpIGNv
dXQgPDwgdG1wLT5uYW1lIDw8ICIsICI7CgkJCQl0bXAtPnZpc2l0ZWQrKzsKCQkJCWZvcihzZXQ8
RWRnZTxXPiA+OjppdGVyYXRvciBpdHIgPSB0bXAtPmFkai5iZWdpbigpOyBpdHIgIT0gdG1wLT5h
ZGouZW5kKCk7ICsraXRyKQoJCQkJewoJCQkJCXF1ZXVlLnB1c2hfYmFjayhpdHItPmVuZHYpOwoJ
CQkJfQoJCQl9CgkJfQoJCQoJCWlmIChkb19wcmludCkgewoJCQljb3V0IDw8IGVuZGw7CgkJCWNs
ZWFyKCk7CSAvLyBXZSBwcm9iYWJseSB3YW50IHRvIGNsZWFyIHRoaXMgaWYgd2UncmUgcHJpbnRp
bmcKCQl9CQkJCS8vIFNpbmNlIHRoZSBvbmx5IHRpbWUgd2UgZG9udCB3YW50IHRvIGlzIHdoZW4g
d2UgZG8gaXNfY29ubmVjdGVkKCkKCX0KCQoJcmV0dXJuOwp9CgkJCQkJCgoKCgovLwovLyBHcmFw
aDxXPjo6cmVsYXgoVmVydGV4PFc+ICpzdGFydCwgVmVydGV4PFc+ICplbmQsIGRvdWJsZSB3ZWln
aHQpCi8vICAgIC0gUmVsYXhlcyBhbiBlZGdlIGJld3RlZW4gc3RhcnQgYW5kIGVuZAovLwovLyBJ
TlBVVFMgOiBub25lCi8vIE9VVFBVVFM6IG5vbmUKLy8KdGVtcGxhdGUgPGNsYXNzIFc+CnZvaWQg
R3JhcGg8Vz46OnJlbGF4KFZlcnRleDxXPiAqc3RhcnQsIFZlcnRleDxXPiAqZW5kLCBkb3VibGUg
d2VpZ2h0KQp7CglpZiAoZW5kLT5jb3N0ID4gc3RhcnQtPmNvc3QgKyB3ZWlnaHQpCgl7CgkJI2lm
ZGVmIERFQlVHCgkJY291dCA8PCAicmVsYXhpbmcgIjw8ZW5kLT5uYW1lPDwiXHRiY29zdDogIjw8
ZW5kLT5jb3N0PDwiXHRlY29zdDoiPDwoc3RhcnQtPmNvc3QgKyB3ZWlnaHQpPDxlbmRsOwoJCSNl
bmRpZgoJCWVuZC0+Y29zdCA9IHN0YXJ0LT5jb3N0ICsgd2VpZ2h0OwoJCWVuZC0+cGFyZW50ID0g
c3RhcnQ7Cgl9Cn0KCgoKCgovLwovLyBHcmFwaDxXPjo6ZGlqa3N0cmEgKGNvbnN0IHN0cmluZyAm
c3RhcnRfbmFtZSkKLy8gICAgLSBQZXJmb3JtcyBEaWprc3RyYSdzIGFsZ29yaXRobSBzdGFydGlu
ZyBmcm9tIHN0YXJ0X25hbWUKLy8KLy8gSU5QVVRTIDogdGhlIG5hbWUgb2YgdGhlIHZlcnRleCB0
byBzdGFydCBhdAovLyBPVVRQVVRTOiBub25lCi8vCnRlbXBsYXRlIDxjbGFzcyBXPgp2b2lkIEdy
YXBoPFc+OjpkaWprc3RyYSAoY29uc3Qgc3RyaW5nICZzdGFydF9uYW1lLCBkb3VibGUgZihjb25z
dCBXICZ3dCkpCnsKCWNsZWFyKCk7CglWZXJ0ZXg8Vz4gKnJvb3QgPSBmaW5kX3ZlcnRleChzdGFy
dF9uYW1lKTsKCQoJdHlwZWRlZiBsaXN0PFZlcnRleDxXPiogPiBWZXJ0ZXhfbGlzdDsKCVZlcnRl
eF9saXN0IHZsaXN0OwoJCglkb3VibGUgbWluaW11bSA9IElORklOSVRZOwoJaW50IGNvdW50ID0g
MDsKCQoJaWYgKHJvb3QgPT0gTlVMTCkKCXsKCQljb3V0IDw8ICJObyB2ZXJ0ZXggZXhpc3RzIHdp
dGggbmFtZSBcIiIgPDwgc3RhcnRfbmFtZSA8PCAiXCJcbiI7CgkJcmV0dXJuOwoJfQoJCglyb290
LT5jb3N0ID0gMDsKCQoJVmVydGV4PFc+ICptaW5fdmVydGV4ID0gTlVMTDsKCQoJLy8gQmVnaW4g
RGlqa3N0cmEncyBhbGdvcml0aG0KCXdoaWxlIChjb3VudCA8IHNpemUoKSkKCXsKCQkjaWZkZWYg
REVCVUcKCQljb3V0IDw8ICItLS0gY291bnQ6ICIgPDwgY291bnQgPDwgIlx0c2l6ZTogIiA8PCBz
aXplKCkgPDwgIiAtLS1cbiI7CgkJI2VuZGlmCgkJbWluX3ZlcnRleCA9IE5VTEw7CgkJbWluaW11
bSA9IElORklOSVRZOwoJCQoJCS8vIEZpbmQgdGhlIG5vbi12aXNpdGVkIHZlcnRleCB3aXRoIHRo
ZSBsZWFzdCBzaG9ydGVzdCBwYXRoIGVzdGltYXRlCgkJZm9yKFZlcnRleF9tYXA6Oml0ZXJhdG9y
IHZfaXRyID0gdmVydGljZXMuYmVnaW4oKTsgdl9pdHIgIT0gdmVydGljZXMuZW5kKCk7ICsrdl9p
dHIpCgkJewoJCQkjaWZkZWYgREVCVUcKCQkJY291dCA8PCAiQ2hlY2tpbmcgIiA8PCB2X2l0ci0+
c2Vjb25kLT5uYW1lIDw8ICI7IGhhcyBjb3N0IG9mICIgPDwgdl9pdHItPnNlY29uZC0+Y29zdCA8
PCAiOyB2aXNpdGVkOiAiIDw8IHZfaXRyLT5zZWNvbmQtPnZpc2l0ZWQgPDwgIlx0bWluaW11bSBp
czogIiA8PCBtaW5pbXVtIDw8ZW5kbDsKCQkJY291dCA8PCAiXHQgdl9pdHItPnNlY29uZC0+dmlz
aXRlZCA8PSAwOiAiIDw8ICh2X2l0ci0+c2Vjb25kLT52aXNpdGVkIDw9IDApIDw8IGVuZGw7CgkJ
CWNvdXQgPDwgIlx0IHZfaXRyLT5zZWNvbmQtPmNvc3QgPCBtaW5pbXVtOiAiIDw8ICh2X2l0ci0+
c2Vjb25kLT5jb3N0IDwgbWluaW11bSkgPDwgZW5kbDsKCQkJI2VuZGlmCgkJCWlmICh2X2l0ci0+
c2Vjb25kLT52aXNpdGVkIDw9IDAgJiYgdl9pdHItPnNlY29uZC0+Y29zdCA8PSBtaW5pbXVtKQoJ
CQl7CgkJCQltaW5fdmVydGV4ID0gdl9pdHItPnNlY29uZDsKCQkJCW1pbmltdW0gPSBtaW5fdmVy
dGV4LT5jb3N0OwoJCQkJI2lmZGVmIERFQlVHCgkJCQljb3V0IDw8ICJtaW4gdmVydGV4IGlzICIg
PDwgbWluX3ZlcnRleC0+bmFtZSA8PCBlbmRsOwoJCQkJI2VuZGlmCgkJCX0KCQl9CgkJCgkJbWlu
X3ZlcnRleC0+dmlzaXRlZCsrOwoJCQoJCWlmIChtaW5fdmVydGV4ID09IE5VTEwpIHJldHVybjsK
CQkKCQlmb3IgKHNldDxFZGdlPFc+ID46Oml0ZXJhdG9yIGVfaXRyID0gbWluX3ZlcnRleC0+YWRq
LmJlZ2luKCk7IGVfaXRyICE9IG1pbl92ZXJ0ZXgtPmFkai5lbmQoKTsgKytlX2l0cikKCQl7CgkJ
CXJlbGF4KG1pbl92ZXJ0ZXgsIGVfaXRyLT5lbmR2LCBmKGVfaXRyLT5jb3N0KSk7CgkJfQoJCQoJ
CWNvdW50Kys7Cgl9Cn0KCgoKCgovLwovLyBHcmFwaDxXPjo6cHJpbnRfcGF0aChjb25zdCBzdHJp
bmcgJmVuZF9uYW1lKQovLyAgICAtIFByaW50cyB0aGUgc2hvcnRlc3QgcGF0aCBlbmRpbmcgYXQg
ZW5kX25hbWUKLy8KLy8gSU5QVVRTIDogdGhlIG5hbWUgb2YgdGhlIHZlcnRleCB0byBzdGFydCBh
dAovLyBPVVRQVVRTOiBub25lCi8vCnRlbXBsYXRlIDxjbGFzcyBXPgp2b2lkIEdyYXBoPFc+Ojpw
cmludF9wYXRoKGNvbnN0IHN0cmluZyAmZW5kX25hbWUpCnsKCVZlcnRleDxXPiAqZW5kX3YgPSBm
aW5kX3ZlcnRleChlbmRfbmFtZSk7CglWZXJ0ZXg8Vz4gKnRtcCA9IE5VTEw7CgkKCWlmIChlbmRf
diA9PSBOVUxMKQoJewoJCWNvdXQgPDwgIk5vIHZlcnRleCBleGlzdHMgd2l0aCBuYW1lIFwiIiA8
PCBlbmRfbmFtZSA8PCAiXCJcbiI7CgkJcmV0dXJuOwoJfQoKCXR5cGVkZWYgbGlzdDxWZXJ0ZXg8
Vz4qID4gVmVydGV4X2xpc3Q7CglWZXJ0ZXhfbGlzdCB2bGlzdDsKCQoJLy8gQmFja3dhcmRzIHRy
YXZlcnNlIHRoZSBwYXRoCgl3aGlsZShlbmRfdiAhPSBOVUxMKSB7CgkJI2lmZGVmIERFQlVHCgkJ
Y291dCA8PCAicHV0dGluZyAiIDw8IGVuZF92LT5uYW1lIDw8ICIgb24gdGhlIHN0YWNrXG4iOwoJ
CSNlbmRpZgoJCXZsaXN0LnB1c2hfZnJvbnQoZW5kX3YpOwoJCWVuZF92ID0gZW5kX3YtPnBhcmVu
dDsKCX0KCQoJI2lmZGVmIERFQlVHCgljb3V0IDw8ICJzaXplIG9mIHN0YWNrOiAiIDw8IHZsaXN0
LnNpemUoKSA8PCBlbmRsOwoJI2VuZGlmCgkKCS8vIFByaW50IG91dCB0aGUgcGF0aAoJd2hpbGUo
IXZsaXN0LmVtcHR5KCkpIHsKCQl0bXAgPSB2bGlzdC5mcm9udCgpOwoJCXZsaXN0LnBvcF9mcm9u
dCgpOwoJCQoJCWNvdXQgPDwgdG1wLT5uYW1lOwoJCWlmICh2bGlzdC5zaXplKCkgPiAwKSBjb3V0
IDw8ICIgdG8gIjsKCX0KCQoJY291dCA8PCBlbmRsOwp9CgkKCQoJCgkKCi8vCi8vIEdyYXBoPFc+
Ojppc19jb25uZWN0ZWQoKQovLyAgICAtIENoZWNrcyB0byBzZWUgaWYgdGhlIGdyYXBoIGlzIGZ1
bGx5IGNvbm5lY3RlZAovLwovLyBJTlBVVFMgOiBub25lCi8vIE9VVFBVVFM6IG5vbmUKLy8KdGVt
cGxhdGUgPGNsYXNzIFc+CmJvb2wgR3JhcGg8Vz46OmlzX2Nvbm5lY3RlZCgpCnsKCWZvcihWZXJ0
ZXhfbWFwOjppdGVyYXRvciBkZnNfaXRyID0gdmVydGljZXMuYmVnaW4oKTsgZGZzX2l0ciAhPSB2
ZXJ0aWNlcy5lbmQoKTsgKytkZnNfaXRyKQoJewoJCWNsZWFyKCk7CgkJZGZzKGRmc19pdHItPnNl
Y29uZC0+bmFtZSwgZmFsc2UpOwoKCQlmb3IoVmVydGV4X21hcDo6aXRlcmF0b3IgdmlzaXRfaXRy
ID0gdmVydGljZXMuYmVnaW4oKTsgdmlzaXRfaXRyICE9IHZlcnRpY2VzLmVuZCgpOyArK3Zpc2l0
X2l0cikKCQl7CgkJCWlmICh2aXNpdF9pdHItPnNlY29uZC0+dmlzaXRlZCA8PSAwKQoJCQkJcmV0
dXJuIGZhbHNlOwoJCX0KCX0KCQoJcmV0dXJuIHRydWU7Cn0KCgoKCgoKCi8vCi8vIEdyYXBoPFc+
OjphZGRfdmVydGV4KGNvbnN0IHN0cmluZyYgbGFiZWwpCi8vICAgIC0gQWRkcyBhIHZlcnRleCB3
aXRoIHRoZSBnaXZlbiBuYW1lCi8vCi8vIElOUFVUUyA6IHN0cmluZyB0byBuYW1lIHRoZSBuZXcg
dmVydGV4Ci8vIE9VVFBVVFM6IG5vbmUKLy8KdGVtcGxhdGUgPGNsYXNzIFc+CnZvaWQgR3JhcGg8
Vz46OmFkZF92ZXJ0ZXgoY29uc3Qgc3RyaW5nJiBsYWJlbCkKewoJVmVydGV4X21hcDo6aXRlcmF0
b3IgaXRyID0gdmVydGljZXMuZmluZChsYWJlbCk7CgkKCWlmKGl0ciA9PSB2ZXJ0aWNlcy5lbmQo
KSkKCXsKCQlWZXJ0ZXg8Vz4gKm5ld3YgPSBuZXcgVmVydGV4PFc+KGxhYmVsKTsKCQl2ZXJ0aWNl
c1tsYWJlbF0gPSBuZXd2OwoJfQoJCglyZXR1cm47Cn0KCgoKCi8vCi8vIEdyYXBoPFc+OjpmaW5k
X3ZlcnRleChjb25zdCBzdHJpbmcgJnZlcnRleF9uYW1lKQovLyAgICAtIEF0dGVtcHRzIHRvIGZp
bmQgYSB2ZXJ0ZXggd2l0aCB0aGUgZ2l2ZW4gbmFtZQovLwovLyBJTlBVVFMgOiBub25lCi8vIE9V
VFBVVFM6IEEgcG9pbnRlciB0byB0aGUgZm91bmQgdmVydGV4LCBOVUxMIGlmIG5vdCBmb3VuZAov
Lwp0ZW1wbGF0ZSA8Y2xhc3MgVz4KVmVydGV4PFc+KiBHcmFwaDxXPjo6ZmluZF92ZXJ0ZXgoY29u
c3Qgc3RyaW5nICZ2ZXJ0ZXhfbmFtZSkKewoJVmVydGV4X21hcDo6aXRlcmF0b3IgaXRyID0gdmVy
dGljZXMuZmluZCh2ZXJ0ZXhfbmFtZSk7CgkKCWlmIChpdHIgIT0gdmVydGljZXMuZW5kKCkpCgkJ
cmV0dXJuIGl0ci0+c2Vjb25kOwoJCQoJcmV0dXJuIE5VTEw7Cn0KCgoKCgovLwovLyBHcmFwaDxX
Pjo6YWRkX2VkZ2UoY29uc3Qgc3RyaW5nICZsYWJlbCwgY29uc3Qgc3RyaW5nICZzdGFydF9uYW1l
LAovLyAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaW5nICZlbmRfbmFtZSwgY29uc3QgVyAm
d2VpZ2h0KQovLyAgICAtIEFkZHMgYW4gZWRnZSB0byB0aGUgZ3JhcGggYmV0d2VlbiB0aGUgdHdv
IGdpdmVuIHZlcnRpY2VzCi8vCi8vIElOUFVUUyA6IGEgbmFtZSBmb3IgdGhlIGVkZ2UsIHRoZSB0
d28gdmVydGV4IG5hbWVzIHB1dCB0aGUgZWRnZSBiZXR3ZWVuLCBhbmQgdGhlIHdlaWdodAovLyBP
VVRQVVRTOiBub25lCi8vCnRlbXBsYXRlIDxjbGFzcyBXPgp2b2lkIEdyYXBoPFc+OjphZGRfZWRn
ZShjb25zdCBzdHJpbmcgJmxhYmVsLCBjb25zdCBzdHJpbmcgJnN0YXJ0X25hbWUsIGNvbnN0IHN0
cmluZyAmZW5kX25hbWUsIGNvbnN0IFcgJndlaWdodCkKewogICAgVmVydGV4PFc+ICpzdGFydF92
ID0gZmluZF92ZXJ0ZXgoc3RhcnRfbmFtZSk7CiAgICBWZXJ0ZXg8Vz4gKmVuZF92ID0gZmluZF92
ZXJ0ZXgoZW5kX25hbWUpOwoJCgkvLyBJZiBib3RoIHZlcnRpY2VzIHdlcmUgZm91bmQsIHB1dCB0
aGUgZWRnZSBpbgoJaWYgKHN0YXJ0X3YgIT0gTlVMTCAmJiBlbmRfdiAhPSBOVUxMKQoJewoJCSNp
ZmRlZiBERUJVRwoJCWNvdXQgPDwgIkluc2VydGluZyBlZGdlIGZyb20gIiA8PCBzdGFydF92LT5u
YW1lIDw8ICIgdG8gIiA8PCBlbmRfdi0+bmFtZSA8PCBlbmRsOwoJCSNlbmRpZgoJICAgIHN0YXJ0
X3YtPmFkai5pbnNlcnQoIEVkZ2U8Vz4oIGxhYmVsLCBlbmRfdiwgd2VpZ2h0ICkgKTsKCX0KCXJl
dHVybjsKfQoKCgoKCi8vCi8vIEdyYXBoPFc+OjpyZW1vdmVfZWRnZShjb25zdCBzdHJpbmcgJmxh
YmVsLCBjb25zdCBzdHJpbmcgJnN0YXJ0X25hbWUsIGNvbnN0IHN0cmluZyAmZW5kX25hbWUpCi8v
ICAgIC0gQWRkcyBhbiBlZGdlIHRvIHRoZSBncmFwaCBiZXR3ZWVuIHRoZSB0d28gZ2l2ZW4gdmVy
dGljZXMKLy8KLy8gSU5QVVRTIDogYSBuYW1lIGZvciB0aGUgZWRnZSwgdGhlIHR3byB2ZXJ0ZXgg
bmFtZXMgcHV0IHRoZSBlZGdlIGJldHdlZW4sIGFuZCB0aGUgd2VpZ2h0Ci8vIE9VVFBVVFM6IG5v
bmUKLy8KdGVtcGxhdGUgPGNsYXNzIFc+CnZvaWQgR3JhcGg8Vz46OnJlbW92ZV9lZGdlKGNvbnN0
IHN0cmluZyAmbGFiZWwsIGNvbnN0IHN0cmluZyAmc3RhcnRfbmFtZSwgY29uc3Qgc3RyaW5nICZl
bmRfbmFtZSkKewogICAgVmVydGV4PFc+ICpzdGFydF92ID0gZmluZF92ZXJ0ZXgoc3RhcnRfbmFt
ZSk7CiAgICBWZXJ0ZXg8Vz4gKmVuZF92ID0gZmluZF92ZXJ0ZXgoZW5kX25hbWUpOwoJCgkvLyBJ
ZiBib3RoIHZlcnRpY2VzIHdlcmUgZm91bmQsIHB1dCB0aGUgZWRnZSBpbgoJaWYgKHN0YXJ0X3Yg
IT0gTlVMTCAmJiBlbmRfdiAhPSBOVUxMKQoJewoJCWZvcihzZXQ8RWRnZTxXPiA+OjppdGVyYXRv
ciBpdHIgPSBzdGFydF92LT5hZGouYmVnaW4oKTsgaXRyICE9IHN0YXJ0X3YtPmFkai5lbmQoKTsg
KytpdHIpCgkJewoJCQlpZiAoaXRyLT5uYW1lID09IGxhYmVsICYmIGl0ci0+ZW5kdiA9PSBlbmRf
dikKCQkJCXN0YXJ0X3YtPmFkai5lcmFzZShpdHIpOwoJCX0KCX0KCXJldHVybjsKfQoKCgoKCgov
LwovLyBHcmFwaDxXPjo6cHJpbnRfdmVydGljZXMoKSBjb25zdAovLyAgICAtIFByaW50cyBhbGwg
dGhlIHZlcnRpY2VzIHRvIFNURE9VVAovLwovLyBJTlBVVFMgOiBub25lCi8vIE9VVFBVVFM6IG5v
bmUKLy8KdGVtcGxhdGUgPGNsYXNzIFc+CnZvaWQgR3JhcGg8Vz46OnByaW50X3ZlcnRpY2VzKGJv
b2wgcHJpbnRfZWRnZXMpCnsKCWZvcihWZXJ0ZXhfbWFwOjppdGVyYXRvciBpdHIgPSB2ZXJ0aWNl
cy5iZWdpbigpOyBpdHIgIT0gdmVydGljZXMuZW5kKCk7ICsraXRyKQoJewoJCWNvdXQgPDwgIm5h
bWU6ICIgPDwgaXRyLT5zZWNvbmQtPm5hbWUgPDwgZW5kbDsKCQlpZiAocHJpbnRfZWRnZXMpIHsK
CQkJZm9yKHNldDxFZGdlPFc+ID46Oml0ZXJhdG9yIGVfaXRyID0gaXRyLT5zZWNvbmQtPmFkai5i
ZWdpbigpOyBlX2l0ciAhPSBpdHItPnNlY29uZC0+YWRqLmVuZCgpOyArK2VfaXRyKQoJCQl7CgkJ
CQljb3V0IDw8ICJcdHRvICIgPDwgZV9pdHItPmVuZHYtPm5hbWUgPDwgIiB2aWEgIiA8PCBlX2l0
ci0+bmFtZSA8PCAiIC0tICIgPDwgZV9pdHItPmNvc3QgPDwgZW5kbDsKCQkJfQoJCQljb3V0IDw8
ICJcbiI7CgkJfQoJfQp9CgoKCgovLwovLyBHcmFwaDxXPjo6ZWRnZV9uYW1lIChjb25zdCBzdHJp
bmcmIHN0YXJ0X25hbWUsICBjb25zdCBzdHJpbmcmIGVuZF9uYW1lKSBjb25zdAovLyAgICAtIFBy
aW50cyBhbGwgdGhlIHZlcnRpY2VzIHRvIFNURE9VVAovLwovLyBJTlBVVFMgOiBub25lCi8vIE9V
VFBVVFM6IG5vbmUKLy8KdGVtcGxhdGUgPGNsYXNzIFc+CnN0cmluZyBHcmFwaDxXPjo6ZWRnZV9u
YW1lIChjb25zdCBzdHJpbmcgJnN0YXJ0X25hbWUsICBjb25zdCBzdHJpbmcgJmVuZF9uYW1lKQp7
CglWZXJ0ZXg8Vz4gKnN0YXJ0X2l0ciA9IGZpbmRfdmVydGV4KHN0YXJ0X25hbWUpOwoJVmVydGV4
PFc+ICplbmRfaXRyID0gZmluZF92ZXJ0ZXgoZW5kX25hbWUpOwoJCgkvLyBJZiBib3RoIHZlcnRp
Y2VzIGFyZSBmb3VuZCwgc2VlIGlmIGFuIGVkZ2UgZXhpc3RzIGJldHdlZW4gdGhlbQoJaWYgKHN0
YXJ0X2l0ciAmJiBlbmRfaXRyKQoJewkKCQlmb3Ioc2V0PEVkZ2U8Vz4gPjo6aXRlcmF0b3IgZV9p
dHIgPSBzdGFydF9pdHItPmFkai5iZWdpbigpOyBlX2l0ciAhPSBzdGFydF9pdHItPmFkai5lbmQo
KTsgKytlX2l0cikKCQl7CgkJCWlmIChlX2l0ci0+ZW5kdiA9PSBlbmRfaXRyKQoJCQkJcmV0dXJu
IGVfaXRyLT5uYW1lOwoJCX0KCX0KCQoJcmV0dXJuICIiOwp9CgoKCgoKLy8KLy8gR3JhcGg8Vz46
OnNpemUoKSBjb25zdAovLyAgICAtIFJldHVybnMgdGhlIG51bWJlciBvZiB2ZXJ0aWNlcyBpbiB0
aGUgZ3JhcGgKLy8KLy8gSU5QVVRTIDogbm9uZQovLyBPVVRQVVRTOiB0aGUgbnVtYmVyIG9mIHZl
cnRpY2VzIChpbnQpIGluIHRoZSBncmFwaAovLwp0ZW1wbGF0ZSA8Y2xhc3MgVz4KaW50IEdyYXBo
PFc+OjpzaXplKCkgY29uc3QKewoJcmV0dXJuIHZlcnRpY2VzLnNpemUoKTsKfQoKCgoKCi8vCi8v
IEdyYXBoPFc+OjpjbGVhcigpCi8vICAgIC0gQ2xlYW5zIHVwIGFsbCB0aGUgdmVydGljZXMKLy8K
Ly8gSU5QVVRTIDogbm9uZQovLyBPVVRQVVRTOiBub25lCi8vCnRlbXBsYXRlIDxjbGFzcyBXPgp2
b2lkIEdyYXBoPFc+OjpjbGVhcigpCnsKCWZvcihWZXJ0ZXhfbWFwOjppdGVyYXRvciBpdHIgPSB2
ZXJ0aWNlcy5iZWdpbigpOyBpdHIgIT0gdmVydGljZXMuZW5kKCk7ICsraXRyKQoJCWl0ci0+c2Vj
b25kLT5yZXNldCgpOwp9CgojZW5kaWYK


More information about the Gcc-bugs mailing list