From 4c278ddd765a5a8e1d1cd34f9420e1e4024ceef7 Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Tue, 19 May 2020 14:17:04 -0400 Subject: [PATCH 155/179] FIXME: implement REALPART_EXPR and IMAGPART_EXPR --- gcc/analyzer/region-model2.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gcc/analyzer/region-model2.cc b/gcc/analyzer/region-model2.cc index dd405d81142..fa72cb6aeff 100644 --- a/gcc/analyzer/region-model2.cc +++ b/gcc/analyzer/region-model2.cc @@ -3971,6 +3971,8 @@ region_model2::on_gassign (const gassign *assign, case SSA_NAME: /* LHS = VAR; */ case VAR_DECL: /* LHS = VAR; */ case PARM_DECL:/* LHS = VAR; */ + case REALPART_EXPR: + case IMAGPART_EXPR: { const svalue2 *rhs_sval = get_rvalue (rhs1, ctxt); set_value (lhs_reg, rhs_sval, ctxt); @@ -5275,6 +5277,18 @@ region_model2::get_rvalue_1 (path_var pv, return get_store_value (element_reg); } + case REALPART_EXPR: + case IMAGPART_EXPR: + { + tree expr = pv.m_tree; + tree arg = TREE_OPERAND (expr, 0); + const svalue2 *arg_sval = get_rvalue (arg, ctxt); + const svalue2 *sval_unaryop + = m_mgr->get_or_create_unaryop (TREE_TYPE (expr), TREE_CODE (expr), + arg_sval); + return sval_unaryop; + }; + case INTEGER_CST: case REAL_CST: case STRING_CST: -- 2.21.0