This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
other/5390: Libiberty fails to demangle multi-digit template parameters.
- From: carlo at alinoe dot com
- To: gcc-gnats at gcc dot gnu dot org
- Date: 15 Jan 2002 18:09:09 -0000
- Subject: other/5390: Libiberty fails to demangle multi-digit template parameters.
- Reply-to: carlo at alinoe dot com
>Number: 5390
>Category: other
>Synopsis: Libiberty fails to demangle multi-digit template parameters.
>Confidential: no
>Severity: critical
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Jan 15 10:16:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator: Carlo Wood
>Release: head revision of 'src' at 15 Jan 2002.
>Organization:
>Environment:
i686-gnu-linux (not relevant though)
>Description:
There is a bug in libiberty, cplus-dem.c
and the testsuite of libiberty regarding
multi-digit template parameters.
First PR that started this is at
http://sources.redhat.com/ml/bug-binutils/2002-q1/msg00021.html
I wrote a patch for this, for comments on the
patch please read:
http://sources.redhat.com/ml/bug-binutils/2002-q1/msg00023.html
The patch contained there is incomplete however.
I attached the full patch to this PR.
The PR was created because DJ Delorie told me patches
for libiberty need to go to gcc-patches@gcc.gnu.org
but I don't trust it to let a patch 'vanish' there :/
>How-To-Repeat:
>Fix:
Apply attached patch.
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="dem2.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="dem2.patch"
MjAwMi0wMS0xMCAgQ2FybG8gV29vZCAgPGNhcmxvQGdudS5vcmc+CgoJKiBjcGx1cy1kZW0uYyAo
ZGVtYW5nbGVfaW50ZWdyYWxfdmFsdWUpOiBBY2NlcHQgbXVsdGktZGlnaXQKCW51bWJlcnMgdGhh
dCBkbyBub3Qgc3RhcnQgd2l0aCBhbiB1bmRlcnNjb3JlOyBUaGlzIGlzIG5lZWRlZAoJZm9yIGlu
dGVnZXIgdGVtcGxhdGUgcGFyYW1ldGVycy4gVGhpcyBkb2Vzbid0IGJyZWFrIGFueXRoaW5nCgli
ZWNhdXNlIG11bHRpLWRpZ2l0IG51bWJlcnMgYXJlIG5ldmVyIGZvbGxvd2VkIGJ5IGEgZGlnaXQu
CgkqIHRlc3RzdWl0ZS9kZW1hbmdsZS1leHBlY3RlZDogQ29ycmVjdGVkIGFsbCBtYW5nbGVkIHRl
c3QKCWNhc2VzIHdpdGggbXVsdGktZGlnaXQgdGVtcGxhdGUgcGFyYW1ldGVyczogZysrIDIuOTUu
eCBkb2VzCglub3QgZ2VuZXJhdGUgdW5kZXJzY29yZXMgYXJvdW5kIHRoZXNlIHBhcmFtZXRlcnMu
CgpJbmRleDogY3BsdXMtZGVtLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2xp
YmliZXJ0eS9jcGx1cy1kZW0uYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yNwpkaWZmIC11IC1k
IC1wIC1yMS4yNyBjcGx1cy1kZW0uYwotLS0gY3BsdXMtZGVtLmMJMjAwMi8wMS8wMyAwMDoyNTo1
NwkxLjI3CisrKyBjcGx1cy1kZW0uYwkyMDAyLzAxLzE1IDE3OjQ1OjA0CkBAIC0xNzg3LDQwICsx
Nzg3LDU0IEBAIGRlbWFuZ2xlX2ludGVncmFsX3ZhbHVlICh3b3JrLCBtYW5nbGVkLCAKIAogICAg
ICAgLyogQnkgZGVmYXVsdCwgd2UgbGV0IHRoZSBudW1iZXIgZGVjaWRlIHdoZXRoZXIgd2Ugc2hh
bGwgY29uc3VtZSBhbgogCSB1bmRlcnNjb3JlLiAgKi8KLSAgICAgIGludCBjb25zdW1lX2ZvbGxv
d2luZ191bmRlcnNjb3JlID0gMDsKKyAgICAgIGludCBtdWx0aWRpZ2l0X3dpdGhvdXRfbGVhZGlu
Z191bmRlcnNjb3JlID0gMDsKICAgICAgIGludCBsZWF2ZV9mb2xsb3dpbmdfdW5kZXJzY29yZSA9
IDA7CiAKICAgICAgIHN1Y2Nlc3MgPSAwOwogCi0gICAgICAvKiBOZWdhdGl2ZSBudW1iZXJzIGFy
ZSBpbmRpY2F0ZWQgd2l0aCBhIGxlYWRpbmcgYG0nLiAgKi8KLSAgICAgIGlmICgqKm1hbmdsZWQg
PT0gJ20nKQotCXsKLQkgIHN0cmluZ19hcHBlbmRuIChzLCAiLSIsIDEpOwotCSAgKCptYW5nbGVk
KSsrOwotCX0KLSAgICAgIGVsc2UgaWYgKG1hbmdsZWRbMF1bMF0gPT0gJ18nICYmIG1hbmdsZWRb
MF1bMV0gPT0gJ20nKQorICAgICAgaWYgKCoqbWFuZ2xlZCA9PSAnXycpCiAJewotCSAgLyogU2lu
Y2UgY29uc3VtZV9jb3VudF93aXRoX3VuZGVyc2NvcmVzIGRvZXMgbm90IGhhbmRsZSB0aGUKLQkg
ICAgIGBtJy1wcmVmaXggd2UgbXVzdCBkbyBpdCBoZXJlLCB1c2luZyBjb25zdW1lX2NvdW50IGFu
ZAotCSAgICAgYWRqdXN0aW5nIHVuZGVyc2NvcmVzOiB3ZSBoYXZlIHRvIGNvbnN1bWUgdGhlIHVu
ZGVyc2NvcmUKLQkgICAgIG1hdGNoaW5nIHRoZSBwcmVwZW5kZWQgb25lLiAgKi8KLQkgIGNvbnN1
bWVfZm9sbG93aW5nX3VuZGVyc2NvcmUgPSAxOwotCSAgc3RyaW5nX2FwcGVuZG4gKHMsICItIiwg
MSk7Ci0JICAoKm1hbmdsZWQpICs9IDI7CisJICBpZiAobWFuZ2xlZFswXVsxXSA9PSAnbScpCisJ
ICAgIHsKKwkgICAgICAvKiBTaW5jZSBjb25zdW1lX2NvdW50X3dpdGhfdW5kZXJzY29yZXMgZG9l
cyBub3QgaGFuZGxlIHRoZQorCQkgYG0nLXByZWZpeCB3ZSBtdXN0IGRvIGl0IGhlcmUsIHVzaW5n
IGNvbnN1bWVfY291bnQgYW5kCisJCSBhZGp1c3RpbmcgdW5kZXJzY29yZXM6IHdlIGhhdmUgdG8g
Y29uc3VtZSB0aGUgdW5kZXJzY29yZQorCQkgbWF0Y2hpbmcgdGhlIHByZXBlbmRlZCBvbmUuICAq
LworCSAgICAgIG11bHRpZGlnaXRfd2l0aG91dF9sZWFkaW5nX3VuZGVyc2NvcmUgPSAxOworCSAg
ICAgIHN0cmluZ19hcHBlbmRuIChzLCAiLSIsIDEpOworCSAgICAgICgqbWFuZ2xlZCkgKz0gMjsK
KwkgICAgfQorCSAgZWxzZQorICAgICAgICAgICAgeworCSAgICAgIC8qIERvIG5vdCBjb25zdW1l
IGEgZm9sbG93aW5nIHVuZGVyc2NvcmU7CisJICAgICAgICAgY29uc3VtZV9jb3VudF93aXRoX3Vu
ZGVyc2NvcmVzIHdpbGwgY29uc3VtZSB3aGF0CisJCSBzaG91bGQgYmUgY29uc3VtZWQuICAqLwor
CSAgICAgIGxlYXZlX2ZvbGxvd2luZ191bmRlcnNjb3JlID0gMTsKKwkgICAgfQogCX0KLSAgICAg
IGVsc2UgaWYgKCoqbWFuZ2xlZCA9PSAnXycpCisgICAgICBlbHNlCiAJewotCSAgLyogRG8gbm90
IGNvbnN1bWUgYSBmb2xsb3dpbmcgdW5kZXJzY29yZTsKLQkgICAgIGNvbnN1bWVfZm9sbG93aW5n
X3VuZGVyc2NvcmUgd2lsbCBjb25zdW1lIHdoYXQgc2hvdWxkIGJlCi0JICAgICBjb25zdW1lZC4g
ICovCisJICAvKiBOZWdhdGl2ZSBudW1iZXJzIGFyZSBpbmRpY2F0ZWQgd2l0aCBhIGxlYWRpbmcg
YG0nLiAgKi8KKwkgIGlmICgqKm1hbmdsZWQgPT0gJ20nKQorCSAgeworCSAgICBzdHJpbmdfYXBw
ZW5kbiAocywgIi0iLCAxKTsKKwkgICAgKCptYW5nbGVkKSsrOworCSAgfQorCSAgLyogU2luY2Ug
Y29uc3VtZV9jb3VudF93aXRoX3VuZGVyc2NvcmVzIGRvZXMgbm90IGhhbmRsZQorCSAgICAgbXVs
dGktZGlnaXQgbnVtYmVycyB0aGF0IGRvIG5vdCBzdGFydCB3aXRoIGFuIHVuZGVyc2NvcmUsCisJ
ICAgICBhbmQgdGhpcyBudW1iZXIgY2FuIGJlIGFuIGludGVnZXIgdGVtcGxhdGUgcGFyYW1ldGVy
LAorCSAgICAgd2UgaGF2ZSB0byBjYWxsIGNvbnN1bWVfY291bnQuICovCisJICBtdWx0aWRpZ2l0
X3dpdGhvdXRfbGVhZGluZ191bmRlcnNjb3JlID0gMTsKKwkgIC8qIFRoZXNlIG11bHRpLWRpZ2l0
IG51bWJlcnMgbmV2ZXIgZW5kIG9uIGFuIHVuZGVyc2NvcmUsCisJICAgICBzbyBpZiB0aGVyZSBp
cyBvbmUgdGhlbiBkb24ndCBlYXQgaXQuICovCiAJICBsZWF2ZV9mb2xsb3dpbmdfdW5kZXJzY29y
ZSA9IDE7CiAJfQogCi0gICAgICAvKiBXZSBtdXN0IGNhbGwgY29uc3VtZV9jb3VudCBpZiB3ZSBl
eHBlY3QgdG8gcmVtb3ZlIGEgdHJhaWxpbmcKLQkgdW5kZXJzY29yZSwgc2luY2UgY29uc3VtZV9j
b3VudF93aXRoX3VuZGVyc2NvcmVzIGV4cGVjdHMKLQkgdGhlIGxlYWRpbmcgdW5kZXJzY29yZSAo
dGhhdCB3ZSBjb25zdW1lZCkgaWYgaXQgaXMgdG8gaGFuZGxlCisgICAgICAvKiBXZSBtdXN0IGNh
bGwgY29uc3VtZV9jb3VudCBpZiB3ZSBoYXZlIG5vIGxlYWRpbmcgdW5kZXJzY29yZSwKKwkgc2lu
Y2UgY29uc3VtZV9jb3VudF93aXRoX3VuZGVyc2NvcmVzIGV4cGVjdHMgb25lICh0aGF0IHdlCisJ
IGNvbnN1bWVkIG9yIHdhc24ndCB0aGVyZSB0byBiZWdpbiB3aXRoKSBpZiBpdCBpcyB0byBoYW5k
bGUKIAkgbXVsdGktZGlnaXQgbnVtYmVycy4gICovCi0gICAgICBpZiAoY29uc3VtZV9mb2xsb3dp
bmdfdW5kZXJzY29yZSkKKyAgICAgIGlmIChtdWx0aWRpZ2l0X3dpdGhvdXRfbGVhZGluZ191bmRl
cnNjb3JlKQogCXZhbHVlID0gY29uc3VtZV9jb3VudCAobWFuZ2xlZCk7CiAgICAgICBlbHNlCiAJ
dmFsdWUgPSBjb25zdW1lX2NvdW50X3dpdGhfdW5kZXJzY29yZXMgKG1hbmdsZWQpOwpAQCAtMTgz
OCw3ICsxODUyLDcgQEAgZGVtYW5nbGVfaW50ZWdyYWxfdmFsdWUgKHdvcmssIG1hbmdsZWQsIAog
CSAgICAgaXMgd3JvbmcuICBJZiBvdGhlciAoYXJiaXRyYXJ5KSBjYXNlcyBhcmUgZm9sbG93ZWQg
YnkgYW4KIAkgICAgIHVuZGVyc2NvcmUsIHdlIG5lZWQgdG8gZG8gc29tZXRoaW5nIG1vcmUgcmFk
aWNhbC4gICovCiAKLQkgIGlmICgodmFsdWUgPiA5IHx8IGNvbnN1bWVfZm9sbG93aW5nX3VuZGVy
c2NvcmUpCisJICBpZiAoKHZhbHVlID4gOSB8fCBtdWx0aWRpZ2l0X3dpdGhvdXRfbGVhZGluZ191
bmRlcnNjb3JlKQogCSAgICAgICYmICEgbGVhdmVfZm9sbG93aW5nX3VuZGVyc2NvcmUKIAkgICAg
ICAmJiAqKm1hbmdsZWQgPT0gJ18nKQogCSAgICAoKm1hbmdsZWQpKys7CkluZGV4OiB0ZXN0c3Vp
dGUvZGVtYW5nbGUtZXhwZWN0ZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2xp
YmliZXJ0eS90ZXN0c3VpdGUvZGVtYW5nbGUtZXhwZWN0ZWQsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuNgpkaWZmIC11IC1kIC1wIC1yMS42IGRlbWFuZ2xlLWV4cGVjdGVkCi0tLSBkZW1hbmdsZS1l
eHBlY3RlZAkyMDAxLzEyLzEzIDAwOjA1OjMyCTEuNgorKysgZGVtYW5nbGUtZXhwZWN0ZWQJMjAw
Mi8wMS8xNSAxNzo0NTowNgpAQCAtMjQ3NiwxNSArMjQ3NiwxNSBAQCBmbl9fRlBRMjFuMWNQTVEy
MW4xY0ZQUTIxbjFjX2kKIGZuKG46OmMgKiwgaW50IChuOjpjOjoqKShuOjpjICopKQogIwogLS1m
b3JtYXQ9Z251Ci1mX19GR3QzQmFyMWkyMWkKK2ZfX0ZHdDNCYXIxaTJHMWkKIGYoQmFyPDI+LCBp
KQogIwogLS1mb3JtYXQ9Z251Ci1mX19GR3QzQmFyMWlfMjFfaQorZl9fRkd0M0JhcjFpMjFpCiBm
KEJhcjwyMT4sIGludCkKICMKIC0tZm9ybWF0PWdudQotZl9fRkd0M0JhcjFpMjRYWV90CitmX19G
R3QzQmFyMWkyRzRYWV90CiBmKEJhcjwyPiwgWFlfdCkKICMKIC0tZm9ybWF0PWdudQpAQCAtMjQ5
MiwxMSArMjQ5MiwxMSBAQCBmb29fX0gxWnQyVEEyWlJDaVp0Mk5BMVVpOV9YMDFfaQogaW50IGZv
bzxUQTxpbnQgY29uc3QgJiwgTkE8OT4gPiA+KFRBPGludCBjb25zdCAmLCBOQTw5PiA+KQogIwog
LS1mb3JtYXQ9Z251Ci1mb29fX0gxWnQyVEEyWmNadDJOQTFVaV8yMF9fWDAxX2kKK2Zvb19fSDFa
dDJUQTJaY1p0Mk5BMVVpMjBfWDAxX2kKIGludCBmb288VEE8Y2hhciwgTkE8MjA+ID4gPihUQTxj
aGFyLCBOQTwyMD4gPikKICMKIC0tZm9ybWF0PWdudQotZm9vX19IMVp0MlRBMlppWnQ4Tl9fX0Ff
X18xVWlfOTlfX1gwMV9pCitmb29fX0gxWnQyVEEyWmladDhOX19fQV9fXzFVaTk5X1gwMV9pCiBp
bnQgZm9vPFRBPGludCwgTl9fX0FfX188OTk+ID4gPihUQTxpbnQsIE5fX19BX19fPDk5PiA+KQog
IwogLS1mb3JtYXQ9Z251CkBAIC0yNTA4LDcgKzI1MDgsNyBAQCBmb29fX0gxWnQyVEEyWlJDaVp0
Mk5BMWltOV9YMDFfaQogaW50IGZvbzxUQTxpbnQgY29uc3QgJiwgTkE8LTk+ID4gPihUQTxpbnQg
Y29uc3QgJiwgTkE8LTk+ID4pCiAjCiAtLWZvcm1hdD1nbnUKLWZvb19fSDFadDJUQTJaY1p0Mk5B
MWlfbTIwX19YMDFfaQorZm9vX19IMVp0MlRBMlpjWnQyTkExaW0yMF9YMDFfaQogaW50IGZvbzxU
QTxjaGFyLCBOQTwtMjA+ID4gPihUQTxjaGFyLCBOQTwtMjA+ID4pCiAjCiAtLWZvcm1hdD1nbnUK
QEAgLTI1MjAsNyArMjUyMCw3IEBAIGZvb19fSDFadDJUQTJaaVp0NE5fX0ExaW05X1gwMV9pCiBp
bnQgZm9vPFRBPGludCwgTl9fQTwtOT4gPiA+KFRBPGludCwgTl9fQTwtOT4gPikKICMKIC0tZm9y
bWF0PWdudQotZm9vX19IMVp0MlRBMlppWnQ0Tl9fQTFpX205OV9fWDAxX2kKK2Zvb19fSDFadDJU
QTJaaVp0NE5fX0ExaW05OV9YMDFfaQogaW50IGZvbzxUQTxpbnQsIE5fX0E8LTk5PiA+ID4oVEE8
aW50LCBOX19BPC05OT4gPikKICMKIC0tZm9ybWF0PWdudQpAQCAtMjUyOCwxNSArMjUyOCwxNSBA
QCBfX29waV9fdDJUQTJaaVp0NE5fX0ExaTkKIFRBPGludCwgTl9fQTw5PiA+OjpvcGVyYXRvciBp
bnQodm9pZCkKICMKIC0tZm9ybWF0PWdudQotX19vcGlfX3QyVEEyWmladDhOX19fQV9fXzFpX205
OV8KK19fb3BpX190MlRBMlppWnQ4Tl9fX0FfX18xaW05OQogVEE8aW50LCBOX19fQV9fXzwtOTk+
ID46Om9wZXJhdG9yIGludCh2b2lkKQogIwogLS1mb3JtYXQ9Z251Ci1mb29fX19iYXJfX2Jhel9f
X19fSDFadDJUQTJaaVp0OE5fX19BX19fMWlfOTlfX1gwMV9pCitmb29fX19iYXJfX2Jhel9fX19f
SDFadDJUQTJaaVp0OE5fX19BX19fMWk5OV9YMDFfaQogaW50IGZvb19fX2Jhcl9fYmF6X19fPFRB
PGludCwgTl9fX0FfX188OTk+ID4gPihUQTxpbnQsIE5fX19BX19fPDk5PiA+KQogIwogLS1mb3Jt
YXQ9Z251Ci1mb29fX2Jhcl9fX2Zvb2Jhcl9fX19fdDJUQTJaaVp0OE5fX19BX19fMWlfbTk5Xwor
Zm9vX19iYXJfX19mb29iYXJfX19fX3QyVEEyWmladDhOX19fQV9fXzFpbTk5CiBUQTxpbnQsIE5f
X19BX19fPC05OT4gPjo6Zm9vX19iYXJfX19mb29iYXJfX18odm9pZCkKICMKIC0tZm9ybWF0PWdu
dQo=