public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: other/5390: Libiberty fails to demangle multi-digit template parameters.
@ 2002-01-15 10:36 Carlo Wood
  0 siblings, 0 replies; 4+ messages in thread
From: Carlo Wood @ 2002-01-15 10:36 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR other/5390; it has been noted by GNATS.

From: Carlo Wood <carlo@alinoe.com>
To: gcc-patches@gcc.gnu.org
Cc: dj@redhat.com, gcc-gnats@gcc.gnu.org
Subject: Re: other/5390: Libiberty fails to demangle multi-digit template parameters.
Date: Tue, 15 Jan 2002 19:35:23 +0100

 --mYCpIKhGyMATD0i+
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 
 As promised, sending this patch also to gcc-patches@gcc.gnu.org
 
 The following patch fixes the problem that an integral template
 parameter larger than 9 or smaller than -9 was not demangled
 correctly (and even led to a core dump in libiberty).
 (This is only related to the old ABI, g++-2.95.x thus).
 
 Basically the change is as follows:
 
 Instead of reading integer numbers as
 
 	[m]<digit>
 
 or
 
 	_[m]<digit>[<digit>...]_
 
 It now simply reads
 
 	[m]<digit>[<digit>...]
 
 or
 
 	_[m]<digit>[<digit>...]_
 
 This is not a problem since g++-2.95.x never mangles
 names in a way that there would follow a digit that
 does not belong to the number.  However, the testsuite
 assumed that this was the case and was testing several
 incorrect mangled names.  I wrote little test cases
 to generate the symbols used in order to make sure that
 g++-2.95.3 indeed does generate mangled names as I
 thought it was. This patch also incorporates these
 changes (testsuite/demangle-expected).
 
 Obviously, after applying this test we get:
 ~/c/src/libiberty>make check
 make[1]: Entering directory `/home/carlo/c/src/libiberty/testsuite'
 /bin/sh ./regress-demangle ./demangle-expected
 All 646 tests passed
 make[1]: Leaving directory `/home/carlo/c/src/libiberty/testsuite'
 
 -- 
 Carlo Wood <carlo@alinoe.com>
 
 --mYCpIKhGyMATD0i+
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: attachment; filename="dem2.patch"
 
 2002-01-10  Carlo Wood  <carlo@gnu.org>
 
 	* cplus-dem.c (demangle_integral_value): Accept multi-digit
 	numbers that do not start with an underscore; This is needed
 	for integer template parameters. This doesn't break anything
 	because multi-digit numbers are never followed by a digit.
 	* testsuite/demangle-expected: Corrected all mangled test
 	cases with multi-digit template parameters: g++ 2.95.x does
 	not generate underscores around these parameters.
 
 Index: cplus-dem.c
 ===================================================================
 RCS file: /cvs/src/src/libiberty/cplus-dem.c,v
 retrieving revision 1.27
 diff -u -d -p -r1.27 cplus-dem.c
 --- cplus-dem.c	2002/01/03 00:25:57	1.27
 +++ cplus-dem.c	2002/01/15 17:45:04
 @@ -1787,40 +1787,54 @@ demangle_integral_value (work, mangled, 
  
        /* By default, we let the number decide whether we shall consume an
  	 underscore.  */
 -      int consume_following_underscore = 0;
 +      int multidigit_without_leading_underscore = 0;
        int leave_following_underscore = 0;
  
        success = 0;
  
 -      /* Negative numbers are indicated with a leading `m'.  */
 -      if (**mangled == 'm')
 -	{
 -	  string_appendn (s, "-", 1);
 -	  (*mangled)++;
 -	}
 -      else if (mangled[0][0] == '_' && mangled[0][1] == 'm')
 +      if (**mangled == '_')
  	{
 -	  /* Since consume_count_with_underscores does not handle the
 -	     `m'-prefix we must do it here, using consume_count and
 -	     adjusting underscores: we have to consume the underscore
 -	     matching the prepended one.  */
 -	  consume_following_underscore = 1;
 -	  string_appendn (s, "-", 1);
 -	  (*mangled) += 2;
 +	  if (mangled[0][1] == 'm')
 +	    {
 +	      /* Since consume_count_with_underscores does not handle the
 +		 `m'-prefix we must do it here, using consume_count and
 +		 adjusting underscores: we have to consume the underscore
 +		 matching the prepended one.  */
 +	      multidigit_without_leading_underscore = 1;
 +	      string_appendn (s, "-", 1);
 +	      (*mangled) += 2;
 +	    }
 +	  else
 +            {
 +	      /* Do not consume a following underscore;
 +	         consume_count_with_underscores will consume what
 +		 should be consumed.  */
 +	      leave_following_underscore = 1;
 +	    }
  	}
 -      else if (**mangled == '_')
 +      else
  	{
 -	  /* Do not consume a following underscore;
 -	     consume_following_underscore will consume what should be
 -	     consumed.  */
 +	  /* Negative numbers are indicated with a leading `m'.  */
 +	  if (**mangled == 'm')
 +	  {
 +	    string_appendn (s, "-", 1);
 +	    (*mangled)++;
 +	  }
 +	  /* Since consume_count_with_underscores does not handle
 +	     multi-digit numbers that do not start with an underscore,
 +	     and this number can be an integer template parameter,
 +	     we have to call consume_count. */
 +	  multidigit_without_leading_underscore = 1;
 +	  /* These multi-digit numbers never end on an underscore,
 +	     so if there is one then don't eat it. */
  	  leave_following_underscore = 1;
  	}
  
 -      /* We must call consume_count if we expect to remove a trailing
 -	 underscore, since consume_count_with_underscores expects
 -	 the leading underscore (that we consumed) if it is to handle
 +      /* We must call consume_count if we have no leading underscore,
 +	 since consume_count_with_underscores expects one (that we
 +	 consumed or wasn't there to begin with) if it is to handle
  	 multi-digit numbers.  */
 -      if (consume_following_underscore)
 +      if (multidigit_without_leading_underscore)
  	value = consume_count (mangled);
        else
  	value = consume_count_with_underscores (mangled);
 @@ -1838,7 +1852,7 @@ demangle_integral_value (work, mangled, 
  	     is wrong.  If other (arbitrary) cases are followed by an
  	     underscore, we need to do something more radical.  */
  
 -	  if ((value > 9 || consume_following_underscore)
 +	  if ((value > 9 || multidigit_without_leading_underscore)
  	      && ! leave_following_underscore
  	      && **mangled == '_')
  	    (*mangled)++;
 Index: testsuite/demangle-expected
 ===================================================================
 RCS file: /cvs/src/src/libiberty/testsuite/demangle-expected,v
 retrieving revision 1.6
 diff -u -d -p -r1.6 demangle-expected
 --- demangle-expected	2001/12/13 00:05:32	1.6
 +++ demangle-expected	2002/01/15 17:45:06
 @@ -2476,15 +2476,15 @@ fn__FPQ21n1cPMQ21n1cFPQ21n1c_i
  fn(n::c *, int (n::c::*)(n::c *))
  #
  --format=gnu
 -f__FGt3Bar1i21i
 +f__FGt3Bar1i2G1i
  f(Bar<2>, i)
  #
  --format=gnu
 -f__FGt3Bar1i_21_i
 +f__FGt3Bar1i21i
  f(Bar<21>, int)
  #
  --format=gnu
 -f__FGt3Bar1i24XY_t
 +f__FGt3Bar1i2G4XY_t
  f(Bar<2>, XY_t)
  #
  --format=gnu
 @@ -2492,11 +2492,11 @@ foo__H1Zt2TA2ZRCiZt2NA1Ui9_X01_i
  int foo<TA<int const &, NA<9> > >(TA<int const &, NA<9> >)
  #
  --format=gnu
 -foo__H1Zt2TA2ZcZt2NA1Ui_20__X01_i
 +foo__H1Zt2TA2ZcZt2NA1Ui20_X01_i
  int foo<TA<char, NA<20> > >(TA<char, NA<20> >)
  #
  --format=gnu
 -foo__H1Zt2TA2ZiZt8N___A___1Ui_99__X01_i
 +foo__H1Zt2TA2ZiZt8N___A___1Ui99_X01_i
  int foo<TA<int, N___A___<99> > >(TA<int, N___A___<99> >)
  #
  --format=gnu
 @@ -2508,7 +2508,7 @@ foo__H1Zt2TA2ZRCiZt2NA1im9_X01_i
  int foo<TA<int const &, NA<-9> > >(TA<int const &, NA<-9> >)
  #
  --format=gnu
 -foo__H1Zt2TA2ZcZt2NA1i_m20__X01_i
 +foo__H1Zt2TA2ZcZt2NA1im20_X01_i
  int foo<TA<char, NA<-20> > >(TA<char, NA<-20> >)
  #
  --format=gnu
 @@ -2520,7 +2520,7 @@ foo__H1Zt2TA2ZiZt4N__A1im9_X01_i
  int foo<TA<int, N__A<-9> > >(TA<int, N__A<-9> >)
  #
  --format=gnu
 -foo__H1Zt2TA2ZiZt4N__A1i_m99__X01_i
 +foo__H1Zt2TA2ZiZt4N__A1im99_X01_i
  int foo<TA<int, N__A<-99> > >(TA<int, N__A<-99> >)
  #
  --format=gnu
 @@ -2528,15 +2528,15 @@ __opi__t2TA2ZiZt4N__A1i9
  TA<int, N__A<9> >::operator int(void)
  #
  --format=gnu
 -__opi__t2TA2ZiZt8N___A___1i_m99_
 +__opi__t2TA2ZiZt8N___A___1im99
  TA<int, N___A___<-99> >::operator int(void)
  #
  --format=gnu
 -foo___bar__baz_____H1Zt2TA2ZiZt8N___A___1i_99__X01_i
 +foo___bar__baz_____H1Zt2TA2ZiZt8N___A___1i99_X01_i
  int foo___bar__baz___<TA<int, N___A___<99> > >(TA<int, N___A___<99> >)
  #
  --format=gnu
 -foo__bar___foobar_____t2TA2ZiZt8N___A___1i_m99_
 +foo__bar___foobar_____t2TA2ZiZt8N___A___1im99
  TA<int, N___A___<-99> >::foo__bar___foobar___(void)
  #
  --format=gnu
 
 --mYCpIKhGyMATD0i+--


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: other/5390: Libiberty fails to demangle multi-digit template parameters.
@ 2002-01-15 20:26 Carlo Wood
  0 siblings, 0 replies; 4+ messages in thread
From: Carlo Wood @ 2002-01-15 20:26 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR other/5390; it has been noted by GNATS.

From: Carlo Wood <carlo@alinoe.com>
To: Hans-Peter Nilsson <hp@bitrange.com>
Cc: gcc-patches@gcc.gnu.org, dj@redhat.com, gcc-gnats@gcc.gnu.org
Subject: Re: other/5390: Libiberty fails to demangle multi-digit template parameters.
Date: Wed, 16 Jan 2002 05:16:21 +0100

 On Tue, Jan 15, 2002 at 10:59:00PM -0500, Hans-Peter Nilsson wrote:
 > IIRC, this is because of blessed backward-compatibility.  Names
 > mangled with earlier GCC releases (earlier than gcc-2.95) are
 > supposed to be demanglable (when at all possible).  If you have
 > checked this, please say so.  Maybe it's not important any
 > longer.
 
 I didn't check compilers older than 2.95.  But even if this patch
 would break demangling for those older compilers, then it seems
 more important to me to have 2.95 working and older broken then
 vica versa.  It is not possible to support both.
 
 That last remark is based on the following logic: When decoding
 integers as <digit>[<digit>...] would break something, then
 apparently the older compilers will generate mangled names
 like: "__FGt3Bar1i21i" demanding that you treat the "i2" as
 a single digit integer (resulting: f(Bar<2>, i)).
 But g++-2.95 will generate "__FGt3Bar1i21i" for f(Bar<21>, int)
 and hence it is impossible to support both.  I'd say:
 demangle "__FGt3Bar1i21i" as f(Bar<21>, int) ...
 
 -- 
 Carlo Wood <carlo@alinoe.com>


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: other/5390: Libiberty fails to demangle multi-digit template parameters.
@ 2002-01-15 20:06 Hans-Peter Nilsson
  0 siblings, 0 replies; 4+ messages in thread
From: Hans-Peter Nilsson @ 2002-01-15 20:06 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR other/5390; it has been noted by GNATS.

From: Hans-Peter Nilsson <hp@bitrange.com>
To: Carlo Wood <carlo@alinoe.com>
Cc: <gcc-patches@gcc.gnu.org>,  <dj@redhat.com>,  <gcc-gnats@gcc.gnu.org>
Subject: Re: other/5390: Libiberty fails to demangle multi-digit template
 parameters.
Date: Tue, 15 Jan 2002 22:59:00 -0500 (EST)

 On Tue, 15 Jan 2002, Carlo Wood wrote:
 
 > As promised, sending this patch also to gcc-patches@gcc.gnu.org
 >
 > The following patch fixes the problem that an integral template
 > parameter larger than 9 or smaller than -9 was not demangled
 > correctly (and even led to a core dump in libiberty).
 > (This is only related to the old ABI, g++-2.95.x thus).
 
 >
 > This is not a problem since g++-2.95.x never mangles
 > names in a way that there would follow a digit that
 > does not belong to the number.  However, the testsuite
 > assumed that this was the case and was testing several
 > incorrect mangled names.
 
 IIRC, this is because of blessed backward-compatibility.  Names
 mangled with earlier GCC releases (earlier than gcc-2.95) are
 supposed to be demanglable (when at all possible).  If you have
 checked this, please say so.  Maybe it's not important any
 longer.
 
 brgds, H-P
 


^ permalink raw reply	[flat|nested] 4+ messages in thread

* other/5390: Libiberty fails to demangle multi-digit template parameters.
@ 2002-01-15 10:16 carlo
  0 siblings, 0 replies; 4+ messages in thread
From: carlo @ 2002-01-15 10:16 UTC (permalink / raw)
  To: gcc-gnats


>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=


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2002-01-16  4:26 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-01-15 10:36 other/5390: Libiberty fails to demangle multi-digit template parameters Carlo Wood
  -- strict thread matches above, loose matches on Subject: below --
2002-01-15 20:26 Carlo Wood
2002-01-15 20:06 Hans-Peter Nilsson
2002-01-15 10:16 carlo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).