From 2e89be4857edfbbcfcca261079c868d70341feb1 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Thu, 21 Sep 2017 11:06:48 +0000 Subject: [PATCH] Fix unguarded uses of tree_to_uhwi This patch uses tree_fits_uhwi_p to protect a previously unguarded use of tree_to_uhwi. Previously we would ICE for variable-sized types. 2017-09-20 Richard Sandiford Alan Hayward David Sherwood gcc/ * tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before calling tree_to_uhwi. Co-Authored-By: Alan Hayward Co-Authored-By: David Sherwood From-SVN: r253057 --- gcc/ChangeLog | 7 +++++++ gcc/tree.c | 5 ++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6f2f3d7a9df..a8d78c7ad58 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2017-09-21 Richard Sandiford + Alan Hayward + David Sherwood + + * tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before + calling tree_to_uhwi. + 2017-09-21 Richard Sandiford Alan Hayward David Sherwood diff --git a/gcc/tree.c b/gcc/tree.c index 788a84b511e..e379940f35d 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -5821,11 +5821,10 @@ find_atomic_core_type (tree type) tree base_atomic_type; /* Only handle complete types. */ - if (TYPE_SIZE (type) == NULL_TREE) + if (!tree_fits_uhwi_p (TYPE_SIZE (type))) return NULL_TREE; - HOST_WIDE_INT type_size = tree_to_uhwi (TYPE_SIZE (type)); - switch (type_size) + switch (tree_to_uhwi (TYPE_SIZE (type))) { case 8: base_atomic_type = atomicQI_type_node; -- 2.30.2