From: Bill Maddox Date: Mon, 23 Dec 2013 17:49:47 +0000 (+0000) Subject: libiberty: sync with gcc X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=eafbc3bf7b4ae9d85c833037413239c45393d266;p=binutils-gdb.git 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 --- diff --git a/include/ChangeLog b/include/ChangeLog index 07a2d4c73c1..ae2f1700e06 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,10 @@ +2013-12-23 Bill Maddox + + * 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 Wei-Cheng Wang diff --git a/include/demangle.h b/include/demangle.h index 58bf547d547..bbad71bd8c7 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 825ddd2d1fa..1e8d0fe6638 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,9 @@ +2013-12-23 Bill Maddox + + * 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 PR other/59195 diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c index 029151e320a..7f51268e115 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;