aboutsummaryrefslogtreecommitdiff
path: root/gcc/ubsan.c
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2014-01-08 10:06:09 +0000
committerMarek Polacek <mpolacek@gcc.gnu.org>2014-01-08 10:06:09 +0000
commit06636b3267e8753b7303b68f935a1913d7df8024 (patch)
tree279373eadb7cecf9b799de81cfd362caae48952c /gcc/ubsan.c
parentc15677b61c637e7dca61eda426c2d7163695dc1d (diff)
downloadgcc-06636b3267e8753b7303b68f935a1913d7df8024.zip
gcc-06636b3267e8753b7303b68f935a1913d7df8024.tar.gz
gcc-06636b3267e8753b7303b68f935a1913d7df8024.tar.bz2
re PR sanitizer/59667 (ubsan: ICE ubsan_type_descriptor)
PR sanitizer/59667 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2. testsuite/ * c-c++-common/ubsan/pr59667.c: New test. From-SVN: r206423
Diffstat (limited to 'gcc/ubsan.c')
-rw-r--r--gcc/ubsan.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/ubsan.c b/gcc/ubsan.c
index 7cc8c18..1841a94 100644
--- a/gcc/ubsan.c
+++ b/gcc/ubsan.c
@@ -311,6 +311,9 @@ ubsan_type_descriptor (tree type, bool want_pointer_type_p)
type2 = TYPE_METHOD_BASETYPE (type2);
}
+ /* If an array, get its type. */
+ type2 = strip_array_types (type2);
+
if (TYPE_NAME (type2) != NULL)
{
if (TREE_CODE (TYPE_NAME (type2)) == IDENTIFIER_NODE)