aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Maddox <maddox@google.com>2013-12-23 17:49:47 +0000
committerMike Frysinger <vapier@gentoo.org>2014-01-06 13:44:21 -0500
commiteafbc3bf7b4ae9d85c833037413239c45393d266 (patch)
tree900d220e37e502c36b21158f09a0ab14ad14804d
parent78f47043ff0654e832d6ac9aa96c9d0819739483 (diff)
downloadgdb-eafbc3bf7b4ae9d85c833037413239c45393d266.zip
gdb-eafbc3bf7b4ae9d85c833037413239c45393d266.tar.gz
gdb-eafbc3bf7b4ae9d85c833037413239c45393d266.tar.bz2
libiberty: sync with gcc
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
-rw-r--r--include/ChangeLog7
-rw-r--r--include/demangle.h8
-rw-r--r--libiberty/ChangeLog6
-rw-r--r--libiberty/cp-demangle.c7
4 files changed, 28 insertions, 0 deletions
diff --git a/include/ChangeLog b/include/ChangeLog
index 07a2d4c..ae2f170 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -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>
diff --git a/include/demangle.h b/include/demangle.h
index 58bf547..bbad71b 100644
--- a/include/demangle.h
+++ b/include/demangle.h
@@ -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
};
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 825ddd2..1e8d0fe 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -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
diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c
index 029151e..7f51268 100644
--- a/libiberty/cp-demangle.c
+++ b/libiberty/cp-demangle.c
@@ -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;