diff options
-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; |