diff options
author | Bill Maddox <maddox@google.com> | 2013-12-23 17:49:47 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2014-01-06 13:44:21 -0500 |
commit | eafbc3bf7b4ae9d85c833037413239c45393d266 (patch) | |
tree | 900d220e37e502c36b21158f09a0ab14ad14804d | |
parent | 78f47043ff0654e832d6ac9aa96c9d0819739483 (diff) | |
download | gdb-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/ChangeLog | 7 | ||||
-rw-r--r-- | include/demangle.h | 8 | ||||
-rw-r--r-- | libiberty/ChangeLog | 6 | ||||
-rw-r--r-- | libiberty/cp-demangle.c | 7 |
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; |