title: c++filt does not demangle typeid name
body: <p>I am running a code on GCC <em>C++</em> compiler, to output the type_info::name:</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;typeinfo&gt;
  
  using namespace std;
  
  class shape {
     protected:
     int color;
     public:
     virtual void draw() = 0;
     };
  
  
  class Circle: public shape {
     protected:
     int color;
     public:
     Circle(int a = 0): color(a) {};
     void draw();
     };
  
     void Circle::draw() {
     cout&lt;&lt;"color: "&lt;&lt;color&lt;&lt;'\n';
     }
  
  class triangle: public shape {
     protected:
     int color;
     public:
     triangle(int a = 0): color(a) {};
     void draw();
     };
  
     void triangle::draw() {
     cout&lt;&lt;"color: "&lt;&lt;color&lt;&lt;'\n';
     }
  
  int main() {
     Circle* a;
     triangle* b;
     cout&lt;&lt;typeid(a).name()&lt;&lt;'\n';
     cout&lt;&lt;typeid(b).name()&lt;&lt;'\n';
     }
  </code></pre>
  
  <p>but I get the following results:</p>
  
  <pre><code>P6Circle
  P8triangle
  </code></pre>
  
  <p>and on demangling,</p>
  
  <pre><code>./shape | c++filt  
  </code></pre>
  
  <p>I get the same output as earlier. Any other solution?</p>