From 2e89be4857edfbbcfcca261079c868d70341feb1 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Thu, 21 Sep 2017 11:06:48 +0000 Subject: 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 6f2f3d7..a8d78c7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -2,6 +2,13 @@ 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 + * tree-ssa-ccp.c (get_value_for_expr): Use a positive test for INTEGER_CST rather than a negative test for ADDR_EXPR. diff --git a/gcc/tree.c b/gcc/tree.c index 788a84b..e379940 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; -- cgit v1.1