public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r12-6999] analyzer: consolidate duplicate code in region::calc_offset
@ 2022-02-02 14:54 David Malcolm
  0 siblings, 0 replies; only message in thread
From: David Malcolm @ 2022-02-02 14:54 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:ea3e1915954371d8230fda44ce6821928f04f80e

commit r12-6999-gea3e1915954371d8230fda44ce6821928f04f80e
Author: David Malcolm <dmalcolm@redhat.com>
Date:   Tue Feb 1 15:48:26 2022 -0500

    analyzer: consolidate duplicate code in region::calc_offset
    
    gcc/analyzer/ChangeLog:
            * region.cc (region::calc_offset): Consolidate effectively
            identical cases.
    
    Signed-off-by: David Malcolm <dmalcolm@redhat.com>

Diff:
---
 gcc/analyzer/region.cc | 48 +++++-------------------------------------------
 1 file changed, 5 insertions(+), 43 deletions(-)

diff --git a/gcc/analyzer/region.cc b/gcc/analyzer/region.cc
index 9d8fdb22271..77554b86143 100644
--- a/gcc/analyzer/region.cc
+++ b/gcc/analyzer/region.cc
@@ -499,41 +499,16 @@ region::calc_offset () const
       switch (iter_region->get_kind ())
 	{
 	case RK_FIELD:
-	  {
-	    const field_region *field_reg
-	      = (const field_region *)iter_region;
-	    iter_region = iter_region->get_parent_region ();
-
-	    bit_offset_t rel_bit_offset;
-	    if (!field_reg->get_relative_concrete_offset (&rel_bit_offset))
-	      return region_offset::make_symbolic (iter_region);
-	    accum_bit_offset += rel_bit_offset;
-	  }
-	  continue;
-
 	case RK_ELEMENT:
-	  {
-	    const element_region *element_reg
-	      = (const element_region *)iter_region;
-	    iter_region = iter_region->get_parent_region ();
-
-	    bit_offset_t rel_bit_offset;
-	    if (!element_reg->get_relative_concrete_offset (&rel_bit_offset))
-	      return region_offset::make_symbolic (iter_region);
-	    accum_bit_offset += rel_bit_offset;
-	  }
-	  continue;
-
 	case RK_OFFSET:
+	case RK_BIT_RANGE:
 	  {
-	    const offset_region *offset_reg
-	      = (const offset_region *)iter_region;
-	    iter_region = iter_region->get_parent_region ();
-
 	    bit_offset_t rel_bit_offset;
-	    if (!offset_reg->get_relative_concrete_offset (&rel_bit_offset))
-	      return region_offset::make_symbolic (iter_region);
+	    if (!iter_region->get_relative_concrete_offset (&rel_bit_offset))
+	      return region_offset::make_symbolic
+		(iter_region->get_parent_region ());
 	    accum_bit_offset += rel_bit_offset;
+	    iter_region = iter_region->get_parent_region ();
 	  }
 	  continue;
 
@@ -549,19 +524,6 @@ region::calc_offset () const
 	  }
 	  continue;
 
-	case RK_BIT_RANGE:
-	  {
-	    const bit_range_region *bit_range_reg
-	      = (const bit_range_region *)iter_region;
-	    iter_region = iter_region->get_parent_region ();
-
-	    bit_offset_t rel_bit_offset;
-	    if (!bit_range_reg->get_relative_concrete_offset (&rel_bit_offset))
-	      return region_offset::make_symbolic (iter_region);
-	    accum_bit_offset += rel_bit_offset;
-	  }
-	  continue;
-
 	default:
 	  return region_offset::make_concrete (iter_region, accum_bit_offset);
 	}


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-02-02 14:54 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-02 14:54 [gcc r12-6999] analyzer: consolidate duplicate code in region::calc_offset David Malcolm

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).