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:
Marek Polacek 2013-09-25 09:04:20 +00:00 committed by Marek Polacek
parent b56e978833
commit d70b0f1f22
2 changed files with 15 additions and 2 deletions

View File

@ -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.

View File

@ -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. */