The following program works under gcc 3.2 but no longer works on 3.4. I believe 
this is a regression. (its actually a regression test from a different compiler)

Expected output shown in comments in program.

Seen on EL4 Preview Candidate using gcc version 3.4.3 20041125 (Redhat 3.4.3-
5.EL4)

// Pasted in because no way to attach files is being displayed in my browser 

//      Check some simple type names can be demangled
//      Expected output:
//      i:int: 0
//      c:char: 0
//      f:float: 0
//      d:double: 0
//      Seen output with gcc version 3.4.3 20041125
//      i:-2
//      c:-2
//      f:-2
//      d:-2


#include <iostream>
#include <typeinfo>

extern "C" char *__cxa_demangle(const char *, char *, size_t *, int *);

int demangle(const char *name)
{
    int s;
    char *d = __cxa_demangle(name, NULL, NULL, &s);
    std::cout << name << ":";
    if (d) std::cout << d << ": ";
    std::cout << s << std::endl;
    return 0;
}

int main() {
    demangle(typeid(int).name());
    demangle(typeid(char).name());
    demangle(typeid(float).name());
    demangle(typeid(double).name());
    return 0;
    }

-- 
           Summary: Simple type names fail to demangle - regression from 3.2
           Product: gcc
           Version: 3.4.3
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: libstdc++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: david dot moore at intel dot com
                CC: gcc-bugs at gcc dot gnu dot org
  GCC host triplet: IA32 EL4 Preview Candidate


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

Reply via email to