[Bug c++/41233] Templated conversion operator produces symbol name that won't demangle
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
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
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41233 Marc Glisse changed: What|Removed |Added CC||glisse at gcc dot gnu.org --- Comment #8 from Marc Glisse 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
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41233 Paolo Carlini changed: What|Removed |Added CC|gcc-bugs at gcc dot gnu.org |iant at google dot com --- Comment #7 from Paolo Carlini 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
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41233 Jason Merrill changed: What|Removed |Added CC||meheff at gcc dot gnu.org --- Comment #6 from Jason Merrill 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
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41233 Jason Merrill 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 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
--- 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 int() ) works but _ZN1tcvKT_IiEEv ( t::operator int const() ) 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
--- 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*(). Similarly, in the second example, if I replace T_ with i, I get _ZNK3FooIPvEcvS_IiEIiEEv which demangles to Foo::operator Foo() const. http://www.codesourcery.com/public/cxx-abi/abi.html#mangling is helpful. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41233
[Bug c++/41233] Templated conversion operator produces symbol name that won't demangle
--- 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
--- 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=19956&action=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 template Foo::operator Foo() const; -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41233