From 45d4feaa1dd576ad1d592aa0b4cb300eee20aace Mon Sep 17 00:00:00 2001 From: astrelsky Date: Thu, 4 Jul 2019 11:47:04 -0400 Subject: [PATCH 1/3] Added char8_t support to DemanglerGnu --- .../src/demangler_gnu/c/cp-demangle.c | 18 ++++++++++++------ .../src/demangler_gnu/headers/cp-demangle.h | 2 +- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/GPL/DemanglerGnu/src/demangler_gnu/c/cp-demangle.c b/GPL/DemanglerGnu/src/demangler_gnu/c/cp-demangle.c index eb4ab08106..21915b6e3a 100644 --- a/GPL/DemanglerGnu/src/demangler_gnu/c/cp-demangle.c +++ b/GPL/DemanglerGnu/src/demangler_gnu/c/cp-demangle.c @@ -2170,9 +2170,10 @@ cplus_demangle_builtin_types[D_BUILTIN_TYPE_COUNT] = /* 27 */ { NL ("decimal64"), NL ("decimal64"), D_PRINT_DEFAULT }, /* 28 */ { NL ("decimal128"), NL ("decimal128"), D_PRINT_DEFAULT }, /* 29 */ { NL ("half"), NL ("half"), D_PRINT_FLOAT }, - /* 30 */ { NL ("char16_t"), NL ("char16_t"), D_PRINT_DEFAULT }, - /* 31 */ { NL ("char32_t"), NL ("char32_t"), D_PRINT_DEFAULT }, - /* 32 */ { NL ("decltype(nullptr)"), NL ("decltype(nullptr)"), + /* 30 */ { NL ("char8_t"), NL ("char8_t"), D_PRINT_DEFAULT }, + /* 31 */ { NL ("char16_t"), NL ("char16_t"), D_PRINT_DEFAULT }, + /* 32 */ { NL ("char32_t"), NL ("char32_t"), D_PRINT_DEFAULT }, + /* 33 */ { NL ("decltype(nullptr)"), NL ("decltype(nullptr)"), D_PRINT_DEFAULT }, }; @@ -2405,14 +2406,19 @@ cplus_demangle_type (struct d_info *di) ret = d_make_builtin_type (di, &cplus_demangle_builtin_types[29]); di->expansion += ret->u.s_builtin.type->len; break; + case 'u': + /* char8_t */ + ret = d_make_builtin_type (di, &cplus_demangle_builtin_types[30]); + di->expansion += ret->u.s_builtin.type->len; + break; case 's': /* char16_t */ - ret = d_make_builtin_type (di, &cplus_demangle_builtin_types[30]); + ret = d_make_builtin_type (di, &cplus_demangle_builtin_types[31]); di->expansion += ret->u.s_builtin.type->len; break; case 'i': /* char32_t */ - ret = d_make_builtin_type (di, &cplus_demangle_builtin_types[31]); + ret = d_make_builtin_type (di, &cplus_demangle_builtin_types[32]); di->expansion += ret->u.s_builtin.type->len; break; @@ -2438,7 +2444,7 @@ cplus_demangle_type (struct d_info *di) case 'n': /* decltype(nullptr) */ - ret = d_make_builtin_type (di, &cplus_demangle_builtin_types[32]); + ret = d_make_builtin_type (di, &cplus_demangle_builtin_types[33]); di->expansion += ret->u.s_builtin.type->len; break; diff --git a/GPL/DemanglerGnu/src/demangler_gnu/headers/cp-demangle.h b/GPL/DemanglerGnu/src/demangler_gnu/headers/cp-demangle.h index 9ef329cbb3..21953c417b 100644 --- a/GPL/DemanglerGnu/src/demangler_gnu/headers/cp-demangle.h +++ b/GPL/DemanglerGnu/src/demangler_gnu/headers/cp-demangle.h @@ -152,7 +152,7 @@ struct d_info extern const struct demangle_operator_info cplus_demangle_operators[]; #endif -#define D_BUILTIN_TYPE_COUNT (33) +#define D_BUILTIN_TYPE_COUNT (34) CP_STATIC_IF_GLIBCPP_V3 const struct demangle_builtin_type_info From 93b2dff88edd850210eafc2b5cfa05fc12933e0e Mon Sep 17 00:00:00 2001 From: Ryan Kurtz Date: Thu, 17 Oct 2019 13:18:18 -0400 Subject: [PATCH 2/3] GT-3243: Certifying (closes #711). --- GPL/DemanglerGnu/src/demangler_gnu/c/cp-demangle.c | 1 - GPL/DemanglerGnu/src/demangler_gnu/headers/cp-demangle.h | 1 - 2 files changed, 2 deletions(-) diff --git a/GPL/DemanglerGnu/src/demangler_gnu/c/cp-demangle.c b/GPL/DemanglerGnu/src/demangler_gnu/c/cp-demangle.c index 21915b6e3a..ff1a2b72eb 100644 --- a/GPL/DemanglerGnu/src/demangler_gnu/c/cp-demangle.c +++ b/GPL/DemanglerGnu/src/demangler_gnu/c/cp-demangle.c @@ -1,6 +1,5 @@ /* ### * IP: GPL 3 Linking Permitted - * REVIEWED: YES */ /* Demangler for g++ V3 ABI. Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 diff --git a/GPL/DemanglerGnu/src/demangler_gnu/headers/cp-demangle.h b/GPL/DemanglerGnu/src/demangler_gnu/headers/cp-demangle.h index 21953c417b..0062ee2aa7 100644 --- a/GPL/DemanglerGnu/src/demangler_gnu/headers/cp-demangle.h +++ b/GPL/DemanglerGnu/src/demangler_gnu/headers/cp-demangle.h @@ -1,6 +1,5 @@ /* ### * IP: GPL 3 Linking Permitted - * REVIEWED: YES */ /* Internal demangler interface for g++ V3 ABI. Copyright (C) 2003, 2004, 2005, 2006, 2007, 2010 From f94d6e88acbf5d703afcfe5c93ad56f4f4ad35e9 Mon Sep 17 00:00:00 2001 From: Ryan Kurtz Date: Thu, 17 Oct 2019 13:58:53 -0400 Subject: [PATCH 3/3] GT-3243: Adding change notice. --- GPL/DemanglerGnu/src/demangler_gnu/c/cp-demangle.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/GPL/DemanglerGnu/src/demangler_gnu/c/cp-demangle.c b/GPL/DemanglerGnu/src/demangler_gnu/c/cp-demangle.c index ff1a2b72eb..479ea669c8 100644 --- a/GPL/DemanglerGnu/src/demangler_gnu/c/cp-demangle.c +++ b/GPL/DemanglerGnu/src/demangler_gnu/c/cp-demangle.c @@ -35,6 +35,8 @@ CHANGE NOTICE: This file was changed on July 1st, 2014. + CHANGE NOTICE: +This file was changed on July 4th, 2019. */ /* This code implements a demangler for the g++ V3 ABI. The ABI is