From aefd9b3e6ea2aed6cf4bf1d951ee963e197fb2fd Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Mon, 27 Apr 2020 21:19:11 -0400 Subject: [PATCH 083/179] FIXME: get arg passing working --- gcc/analyzer/region-model2.cc | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/gcc/analyzer/region-model2.cc b/gcc/analyzer/region-model2.cc index 1eafc514e40..ac35ad8750a 100644 --- a/gcc/analyzer/region-model2.cc +++ b/gcc/analyzer/region-model2.cc @@ -6299,30 +6299,22 @@ region_model2::push_frame (function *fun, vec *arg_svals, for (tree iter_parm = DECL_ARGUMENTS (fndecl); iter_parm; iter_parm = DECL_CHAIN (iter_parm), ++idx) { - gcc_unreachable (); -#if 0 /* If there's a mismatching declaration, the call stmt might not have enough args. Handle this case by leaving the rest of the params as uninitialized. */ - if (idx >= arg_sids->length ()) + if (idx >= arg_svals->length ()) break; - svalue_id arg_sid = (*arg_sids)[idx]; - region_id parm_rid - = region->get_or_create (model, frame_rid, iter_parm, - TREE_TYPE (iter_parm), ctxt); - model->set_value (parm_rid, arg_sid, ctxt); + svalue2 *arg_sval = (*arg_svals)[idx]; + region2 *parm_reg = get_lvalue (iter_parm, ctxt); + set_value (parm_reg, arg_sval, ctxt); - /* Also do it for default SSA name (sharing the same unknown - value). */ + /* Also do it for default SSA name (sharing the same value). */ tree parm_default_ssa = ssa_default_def (fun, iter_parm); if (parm_default_ssa) { - region_id defssa_rid - = region->get_or_create (model, frame_rid, parm_default_ssa, - TREE_TYPE (iter_parm), ctxt); - model->set_value (defssa_rid, arg_sid, ctxt); + region2 *defssa_reg = get_lvalue (parm_default_ssa, ctxt); + set_value (defssa_reg, arg_sval, ctxt); } -#endif } } else @@ -6335,8 +6327,8 @@ region_model2::push_frame (function *fun, vec *arg_svals, iter_parm = DECL_CHAIN (iter_parm)) { on_top_level_param (iter_parm, ctxt); - /* TODO: also do it for default SSA name (sharing the same unknown - value). */ + /* TODO: also do it for default SSA name (have them share the + same unknown initial value). */ tree parm_default_ssa = ssa_default_def (fun, iter_parm); if (parm_default_ssa) on_top_level_param (parm_default_ssa, ctxt); -- 2.21.0