re PR sanitizer/58420 (internal compiler error: in ubsan_type_descriptor, at ubsan.c:280)
PR sanitizer/58420 * ubsan.c (ubsan_type_descriptor): Handle IDENTIFIER_NODEs when determining the type name. From-SVN: r202887
This commit is contained in:
parent
b56e978833
commit
d70b0f1f22
|
@ -1,3 +1,9 @@
|
|||
2013-09-25 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR sanitizer/58420
|
||||
* ubsan.c (ubsan_type_descriptor): Handle IDENTIFIER_NODEs
|
||||
when determining the type name.
|
||||
|
||||
2013-09-24 Oleg Endo <olegendo@gcc.gnu.org>
|
||||
|
||||
* config/sh/sh.md: Fix formatting.
|
||||
|
|
11
gcc/ubsan.c
11
gcc/ubsan.c
|
@ -259,11 +259,18 @@ ubsan_type_descriptor (tree type)
|
|||
unsigned short tkind, tinfo;
|
||||
|
||||
/* At least for INTEGER_TYPE/REAL_TYPE/COMPLEX_TYPE, this should work.
|
||||
??? For e.g. type_unsigned_for (type), the TYPE_NAME would be NULL. */
|
||||
For e.g. type_unsigned_for (type) or bit-fields, the TYPE_NAME
|
||||
would be NULL. */
|
||||
if (TYPE_NAME (type) != NULL)
|
||||
tname = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
|
||||
{
|
||||
if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
|
||||
tname = IDENTIFIER_POINTER (TYPE_NAME (type));
|
||||
else
|
||||
tname = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
|
||||
}
|
||||
else
|
||||
tname = "<unknown>";
|
||||
|
||||
if (TREE_CODE (type) == INTEGER_TYPE)
|
||||
{
|
||||
/* For INTEGER_TYPE, this is 0x0000. */
|
||||
|
|
Loading…
Reference in New Issue