[Bug c++/41233] Templated conversion operator produces symbol name that won't demangle

2022-11-20 Thread zack+srcbugz at owlfolio dot org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=41233

--- Comment #10 from Zack Weinberg  ---
The examples found by other people still don't demangle, though...

$ c++filt --version 2>&1 | head -n1
GNU c++filt (GNU Binutils for Debian) 2.39
$ c++filt <<\EOF
_ZNK3FooIPvEcvS_IT_EIiEEv
_ZN5vnullcv3vecIT_T0_T1_EI10double_int7va_heap6vl_ptrEEv
EOF
_ZNK3FooIPvEcvS_IT_EIiEEv
_ZN5vnullcv3vecIT_T0_T1_EI10double_int7va_heap6vl_ptrEEv

[Bug c++/41233] Templated conversion operator produces symbol name that won't demangle

2022-11-20 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=41233

--- Comment #9 from Andrew Pinski  ---
(In reply to Zack Weinberg from comment #0)
> 
>   _ZN9convertercvPT_I4DestEEv
[apinski@xeond2 stage1-gcc]$ c++filt _ZN9convertercvPT_I4DestEEv
converter::operator Dest*()

This now demangles as of 2.30.
>   _ZN9convertercvPT_IN4DestEEEv

So does this.

[apinski@xeond2 stage1-gcc]$ c++filt _ZN9convertercvPT_IN4DestEEEv
converter::operator Dest*()

[Bug c++/41233] Templated conversion operator produces symbol name that won't demangle

2012-11-26 Thread glisse at gcc dot gnu.org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41233



Marc Glisse glisse at gcc dot gnu.org changed:



   What|Removed |Added



 CC||glisse at gcc dot gnu.org



--- Comment #8 from Marc Glisse glisse at gcc dot gnu.org 2012-11-26 10:24:23 
UTC ---

Note that such undemanglable symbols now appear in cc1 and cc1plus:

_ZN5vnullcv3vecIT_T0_T1_EI10double_int7va_heap6vl_ptrEEv and 55 other variants.


[Bug c++/41233] Templated conversion operator produces symbol name that won't demangle

2012-01-20 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41233

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC|gcc-bugs at gcc dot gnu.org |iant at google dot com

--- Comment #7 from Paolo Carlini paolo.carlini at oracle dot com 2012-01-20 
10:28:27 UTC ---
Ian, are you aware of this standing issue? Thanks in advance.


[Bug c++/41233] Templated conversion operator produces symbol name that won't demangle

2012-01-19 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41233

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 CC||meheff at gcc dot gnu.org

--- Comment #6 from Jason Merrill jason at gcc dot gnu.org 2012-01-20 
04:03:51 UTC ---
*** Bug 37677 has been marked as a duplicate of this bug. ***


[Bug c++/41233] Templated conversion operator produces symbol name that won't demangle

2012-01-06 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41233

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-01-06
 CC||jason at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #5 from Jason Merrill jason at gcc dot gnu.org 2012-01-06 
18:00:50 UTC ---
This message to the ABI list deals with the same issue:

http://sourcery.mentor.com/archives/cxx-abi-dev/msg02295.html


[Bug c++/41233] Templated conversion operator produces symbol name that won't demangle

2010-05-29 Thread gcc at magfr dot user dot lysator dot liu dot se


--- Comment #4 from gcc at magfr dot user dot lysator dot liu dot se  
2010-05-29 08:17 ---
I have run head-first into this problem as well.

I have found that _ZN1tcvT_IiEEv ( t::operator intint() ) works but
_ZN1tcvKT_IiEEv ( t::operator int constint() ) fails so it seems the problem
is that the template isn't detected, and looking at the code in
libiberty/cp-demangle.c (r159908) we have line 4689 that tries to detect if the
cast target is a template type but only handles the case where the type is
unadorned by anything and then there is the comment on lines 4696-4699 that
explains the problem.


-- 

gcc at magfr dot user dot lysator dot liu dot se changed:

   What|Removed |Added

 CC||gcc at magfr dot user dot
   ||lysator dot liu dot se


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41233



[Bug c++/41233] Templated conversion operator produces symbol name that won't demangle

2010-02-25 Thread jim at clkda dot com


--- Comment #1 from jim at clkda dot com  2010-02-25 16:33 ---
Created an attachment (id=19956)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19956action=view)
Preprocessor output of code that produces a symbol that can't be demangled.

The symbol that can't be demangled is _ZNK3FooIPvEcvS_IT_EIiEEv, which should
correspond to 

template typename T
template typename U
FooT::operator FooU() const;


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41233



[Bug c++/41233] Templated conversion operator produces symbol name that won't demangle

2010-02-25 Thread jim at clkda dot com


--- Comment #2 from jim at clkda dot com  2010-02-25 16:35 ---
I ran into this as well.  My un-demanglable symbol is
_ZNK3FooIPvEcvS_IT_EIiEEv.  Here's my info and attached test case is
demangle.ii:

/usr/bin/g++4 -v -save-temps -c -o demangle.o demangle.ccUsing built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --enable-shared --enable-threads=posix
--enable-checking=release --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --with-gxx-include-dir=/usr/include/c++/3.4.3
--enable-libgcj-multifile --enable-languages=c,c++,java,f95
--enable-java-awt=gtk --disable-dssi
--with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic
--host=x86_64-redhat-linux
Thread model: posix
gcc version 4.1.2 20070626 (Red Hat 4.1.2-14)
 /usr/libexec/gcc/x86_64-redhat-linux/4.1.2/cc1plus -E -quiet -v -D_GNU_SOURCE
demangle.cc -mtune=generic -fpch-preprocess -o demangle.ii
ignoring nonexistent directory
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../x86_64-redhat-linux/include
#include ... search starts here:
#include ... search starts here:
 /usr/include/c++/3.4.3
 /usr/include/c++/3.4.3/x86_64-redhat-linux
 /usr/include/c++/3.4.3/backward
 /usr/local/include
 /usr/lib/gcc/x86_64-redhat-linux/4.1.2/include
 /usr/include
End of search list.
 /usr/libexec/gcc/x86_64-redhat-linux/4.1.2/cc1plus -fpreprocessed demangle.ii
-quiet -dumpbase demangle.cc -mtune=generic -auxbase-strip demangle.o -version
-o demangle.s
GNU C++ version 4.1.2 20070626 (Red Hat 4.1.2-14) (x86_64-redhat-linux)
compiled by GNU C version 4.1.2 20070626 (Red Hat 4.1.2-14).
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 184adf145435f56fdcc7b1a1fb1af981
 as -V -Qy -o demangle.o demangle.s
GNU assembler version 2.15.92.0.2 (x86_64-redhat-linux) using BFD version
2.15.92.0.2 20040927


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41233



[Bug c++/41233] Templated conversion operator produces symbol name that won't demangle

2010-02-25 Thread jim at clkda dot com


--- Comment #3 from jim at clkda dot com  2010-02-25 20:01 ---
I think the T_ is not handling the forward reference to the not-yet-specified
first template parameter correctly.  For the original example, replacing T_
with N4DestE gives something that *looks* right although is probably not
correct:

_ZN9convertercvPN4DestEI4DestEEv

which demangles to converter::operator Dest*Dest().

Similarly, in the second example, if I replace T_ with i, I get

_ZNK3FooIPvEcvS_IiEIiEEv

which demangles to Foovoid*::operator Foointint() const.

http://www.codesourcery.com/public/cxx-abi/abi.html#mangling is helpful.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41233