libiberty: sync with gcc
authorBill Maddox <maddox@google.com>
Mon, 23 Dec 2013 17:49:47 +0000 (17:49 +0000)
committerMike Frysinger <vapier@gentoo.org>
Mon, 6 Jan 2014 18:44:21 +0000 (13:44 -0500)
PR c++/41090
Add -fdeclone-ctor-dtor.
include/
* demangle.h (enum gnu_v3_ctor_kinds):
Added literal gnu_v3_unified_ctor.
(enum gnu_v3_ctor_kinds):
Added literal gnu_v3_unified_dtor.
libiberty/
* cp-demangle.c (cplus_demangle_fill_ctor,cplus_demangle_fill_dtor):
Handle unified ctor/dtor.
(d_ctor_dtor_name): Handle unified ctor/dtor.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206182 138bc75d-0d04-0410-961f-82ee72b054a4

include/ChangeLog
include/demangle.h
libiberty/ChangeLog
libiberty/cp-demangle.c

index 07a2d4c73c16cd4fa4afe64700e58d1f55735369..ae2f1700e069fff7736edaf755534bf8e3f78aad 100644 (file)
@@ -1,3 +1,10 @@
+2013-12-23  Bill Maddox  <maddox@google.com>
+
+       * demangle.h (enum gnu_v3_ctor_kinds):
+       Added literal gnu_v3_unified_ctor.
+       (enum gnu_v3_ctor_kinds):
+       Added literal gnu_v3_unified_dtor.
+
 2013-12-13  Kuan-Lin Chen  <kuanlinchentw@gmail.com>
            Wei-Cheng Wang  <cole945@gmail.com>
 
index 58bf547d5474abeca17da64345b3417936a69768..bbad71bd8c742519283ebeaf17e9686b71c2b140 100644 (file)
@@ -173,6 +173,10 @@ enum gnu_v3_ctor_kinds {
   gnu_v3_complete_object_ctor = 1,
   gnu_v3_base_object_ctor,
   gnu_v3_complete_object_allocating_ctor,
+  /* These are not part of the V3 ABI.  Unified constructors are generated
+     as a speed-for-space optimization when the -fdeclone-ctor-dtor option
+     is used, and are always internal symbols.  */
+  gnu_v3_unified_ctor,
   gnu_v3_object_ctor_group
 };
 
@@ -188,6 +192,10 @@ enum gnu_v3_dtor_kinds {
   gnu_v3_deleting_dtor = 1,
   gnu_v3_complete_object_dtor,
   gnu_v3_base_object_dtor,
+  /* These are not part of the V3 ABI.  Unified destructors are generated
+     as a speed-for-space optimization when the -fdeclone-ctor-dtor option
+     is used, and are always internal symbols.  */
+  gnu_v3_unified_dtor,
   gnu_v3_object_dtor_group
 };
 
index 825ddd2d1fa4bee4b20e575d0251ef4ce3b2b595..1e8d0fe66385de61011ef9006fc7a020fdce9417 100644 (file)
@@ -1,3 +1,9 @@
+2013-12-23  Bill Maddox  <maddox@google.com>
+
+       * cp-demangle.c (cplus_demangle_fill_ctor,cplus_demangle_fill_dtor):
+       Handle unified ctor/dtor.
+       (d_ctor_dtor_name): Handle unified ctor/dtor.
+
 2013-11-22  Cary Coutant  <ccoutant@google.com>
     
        PR other/59195
index 029151e320aadddd23642470434b5aa90761f9e1..7f51268e1151d262c55fb6735efeae73b60b7f32 100644 (file)
@@ -2107,6 +2107,9 @@ d_ctor_dtor_name (struct d_info *di)
          case '3':
            kind = gnu_v3_complete_object_allocating_ctor;
            break;
+          case '4':
+           kind = gnu_v3_unified_ctor;
+           break;
          case '5':
            kind = gnu_v3_object_ctor_group;
            break;
@@ -2132,6 +2135,10 @@ d_ctor_dtor_name (struct d_info *di)
          case '2':
            kind = gnu_v3_base_object_dtor;
            break;
+          /*  digit '3' is not used */
+         case '4':
+           kind = gnu_v3_unified_dtor;
+           break;
          case '5':
            kind = gnu_v3_object_dtor_group;
            break;