From bb2ce3cdb8833c246091e4dbf77ae0233112085b Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Tue, 14 Apr 2020 10:26:27 -0400 Subject: [PATCH 031/179] FIXME: implement region2::get_base_region --- gcc/analyzer/region-model2.cc | 22 ++++++++++++++++++++++ gcc/analyzer/region-model2.h | 1 + 2 files changed, 23 insertions(+) diff --git a/gcc/analyzer/region-model2.cc b/gcc/analyzer/region-model2.cc index 9c71831a06b..6c96abcd6c7 100644 --- a/gcc/analyzer/region-model2.cc +++ b/gcc/analyzer/region-model2.cc @@ -812,6 +812,28 @@ region2::operator== (const region2 &other) const } } +/* FIXME. */ + +const region2 * +region2::get_base_region () const +{ + const region2 *iter = this; + while (iter) + { + switch (iter->get_kind ()) + { + //case RK_element_region: + case RK_FIELD: + iter = iter->get_parent_region (); + continue; + default: + return iter; + } + } + return iter; +} + + /* Set this region2's value to RHS_SVAL (or potentially a variant of it, for some kinds of casts). */ #if 0 diff --git a/gcc/analyzer/region-model2.h b/gcc/analyzer/region-model2.h index 3758b9bfdef..db5e66f8678 100644 --- a/gcc/analyzer/region-model2.h +++ b/gcc/analyzer/region-model2.h @@ -560,6 +560,7 @@ public: virtual const symbolic_region2 *dyn_cast_symbolic_region2 () const { return NULL; } region2 *get_parent_region () const { return m_parent; } + const region2 *get_base_region () const; #if 0 void set_value (region_model2 &model, region_id this_rid, svalue2_id rhs_sid, -- 2.21.0