From 786aade1506079ab1d3ffe8263f33c92d0f6654c Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Tue, 30 Jun 2020 17:36:27 -0400 Subject: [PATCH 267/315] FIXME: fixes for ICEs on complex --- gcc/analyzer/region-model2.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gcc/analyzer/region-model2.cc b/gcc/analyzer/region-model2.cc index a3c15b4ef2f..4bff4b74530 100644 --- a/gcc/analyzer/region-model2.cc +++ b/gcc/analyzer/region-model2.cc @@ -3390,7 +3390,8 @@ region_model2_manager::maybe_fold_binop (tree type, enum tree_code op, if (cst0 && cst1) { if (tree result = fold_binary (op, type, cst0, cst1)) - return get_or_create_constant_svalue2 (result); + if (CONSTANT_CLASS_P (result)) + return get_or_create_constant_svalue2 (result); } if (FLOAT_TYPE_P (type) @@ -4542,6 +4543,7 @@ region_model2::get_gassign_result (const gassign *assign, case COMPONENT_REF: /* LHS = op0.op1; */ case MEM_REF: case REAL_CST: + case COMPLEX_CST: case INTEGER_CST: case ARRAY_REF: case SSA_NAME: /* LHS = VAR; */ @@ -4556,6 +4558,7 @@ region_model2::get_gassign_result (const gassign *assign, case BIT_NOT_EXPR: case FIX_TRUNC_EXPR: case FLOAT_EXPR: + case COMPLEX_EXPR: case NEGATE_EXPR: case NOP_EXPR: { @@ -5663,6 +5666,7 @@ region_model2::get_rvalue_1 (path_var pv, case INTEGER_CST: case REAL_CST: + case COMPLEX_CST: case STRING_CST: return m_mgr->get_or_create_constant_svalue2 (pv.m_tree); -- 2.26.2