Merge remote-tracking branch 'origin/GT-3243_ryanmkurtz_PR-705_astrelsky_DemanglerGnu' into Ghidra_9.1

This commit is contained in:
Ryan Kurtz 2019-10-18 09:26:29 -04:00
commit 18173a5f60
2 changed files with 15 additions and 9 deletions

View file

@ -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
@ -36,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
@ -2170,9 +2171,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 +2407,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 +2445,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;

View file

@ -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
@ -152,7 +151,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