[committed] analyzer: bitfield fixes [PR99212]

2021-06-08 Thread David Malcolm via Gcc-patches
This patch verifies the previous fix for bitfield sizes by implementing
enough support for bitfields in the analyzer to get the test cases to pass.

The patch implements support in the analyzer for reading from a
BIT_FIELD_REF, and support for folding BIT_AND_EXPR of a mask, to handle
the cases generated in tests.

The existing bitfields tests in data-model-1.c turned out to rely on
undefined behavior, in that they were assigning values to a signed
bitfield that were outside of the valid range of values.  I believe that
that's why we were seeing target-specific differences in the test
results (PR analyzer/99212).  The patch updates the test to remove the
undefined behaviors.

Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
Lightly tested with cris-elf.

Pushed to trunk as r12-1303-gd3b1ef7a83c0c0cd5b20a1dd1714b868f3d2b442.

gcc/analyzer/ChangeLog:
PR analyzer/99212
* region-model-manager.cc
(region_model_manager::maybe_fold_binop): Add support for folding
BIT_AND_EXPR of compound_svalue and a mask constant.
* region-model.cc (region_model::get_rvalue_1): Implement
BIT_FIELD_REF in terms of...
(region_model::get_rvalue_for_bits): New function.
* region-model.h (region_model::get_rvalue_for_bits): New decl.
* store.cc (bit_range::from_mask): New function.
(selftest::test_bit_range_intersects_p): New selftest.
(selftest::assert_bit_range_from_mask_eq): New.
(ASSERT_BIT_RANGE_FROM_MASK_EQ): New macro.
(selftest::assert_no_bit_range_from_mask_eq): New.
(ASSERT_NO_BIT_RANGE_FROM_MASK): New macro.
(selftest::test_bit_range_from_mask): New selftest.
(selftest::analyzer_store_cc_tests): Call the new selftests.
* store.h (bit_range::intersects_p): New.
(bit_range::from_mask): New decl.
(concrete_binding::get_bit_range): New accessor.
(store_manager::get_concrete_binding): New overload taking
const bit_range &.

gcc/testsuite/ChangeLog:
PR analyzer/99212
* gcc.dg/analyzer/bitfields-1.c: New test.
* gcc.dg/analyzer/data-model-1.c (struct sbits): Make bitfields
explicitly signed.
(test_44): Update test values assigned to the bits to ones that
fit in the range of the bitfield type.  Remove xfails.
(test_45): Remove xfails.

Signed-off-by: David Malcolm 
---
 gcc/analyzer/region-model-manager.cc |  46 -
 gcc/analyzer/region-model.cc |  65 ++-
 gcc/analyzer/region-model.h  |   4 +
 gcc/analyzer/store.cc| 186 +++
 gcc/analyzer/store.h |  18 ++
 gcc/testsuite/gcc.dg/analyzer/bitfields-1.c  | 144 ++
 gcc/testsuite/gcc.dg/analyzer/data-model-1.c |  30 +--
 7 files changed, 469 insertions(+), 24 deletions(-)
 create mode 100644 gcc/testsuite/gcc.dg/analyzer/bitfields-1.c

diff --git a/gcc/analyzer/region-model-manager.cc 
b/gcc/analyzer/region-model-manager.cc
index dfd2413e914..0ca0c8ad02e 100644
--- a/gcc/analyzer/region-model-manager.cc
+++ b/gcc/analyzer/region-model-manager.cc
@@ -480,9 +480,49 @@ region_model_manager::maybe_fold_binop (tree type, enum 
tree_code op,
   break;
 case BIT_AND_EXPR:
   if (cst1)
-   if (zerop (cst1) && INTEGRAL_TYPE_P (type))
- /* "(ARG0 & 0)" -> "0".  */
- return get_or_create_constant_svalue (build_int_cst (type, 0));
+   {
+ if (zerop (cst1) && INTEGRAL_TYPE_P (type))
+   /* "(ARG0 & 0)" -> "0".  */
+   return get_or_create_constant_svalue (build_int_cst (type, 0));
+
+ /* Support masking out bits from a compound_svalue, as this
+is generated when accessing bitfields.  */
+ if (const compound_svalue *compound_sval
+   = arg0->dyn_cast_compound_svalue ())
+   {
+ const binding_map &map = compound_sval->get_map ();
+ unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (cst1);
+ /* If "mask" is a contiguous range of set bits, see if the
+compound_sval has a value for those bits.  */
+ bit_range bits (0, 0);
+ if (bit_range::from_mask (mask, &bits))
+   {
+ const concrete_binding *conc
+   = get_store_manager ()->get_concrete_binding (bits,
+ BK_direct);
+ if (const svalue *sval = map.get (conc))
+   {
+ /* We have a value;
+shift it by the correct number of bits.  */
+ const svalue *lhs = get_or_create_cast (type, sval);
+ HOST_WIDE_INT bit_offset
+   = bits.get_start_bit_offset ().to_shwi ();
+ tree shift_amt = build_int_cst (type, bit_offset);
+ const svalue *shift_sval
+

Re: [committed] analyzer: bitfield fixes [PR99212]

2021-06-09 Thread Christophe Lyon via Gcc-patches
On Tue, 8 Jun 2021 at 21:34, David Malcolm via Gcc-patches
 wrote:
>
> This patch verifies the previous fix for bitfield sizes by implementing
> enough support for bitfields in the analyzer to get the test cases to pass.
>
> The patch implements support in the analyzer for reading from a
> BIT_FIELD_REF, and support for folding BIT_AND_EXPR of a mask, to handle
> the cases generated in tests.
>
> The existing bitfields tests in data-model-1.c turned out to rely on
> undefined behavior, in that they were assigning values to a signed
> bitfield that were outside of the valid range of values.  I believe that
> that's why we were seeing target-specific differences in the test
> results (PR analyzer/99212).  The patch updates the test to remove the
> undefined behaviors.
>
> Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
> Lightly tested with cris-elf.
>
> Pushed to trunk as r12-1303-gd3b1ef7a83c0c0cd5b20a1dd1714b868f3d2b442.
>
> gcc/analyzer/ChangeLog:
> PR analyzer/99212
> * region-model-manager.cc
> (region_model_manager::maybe_fold_binop): Add support for folding
> BIT_AND_EXPR of compound_svalue and a mask constant.
> * region-model.cc (region_model::get_rvalue_1): Implement
> BIT_FIELD_REF in terms of...
> (region_model::get_rvalue_for_bits): New function.
> * region-model.h (region_model::get_rvalue_for_bits): New decl.
> * store.cc (bit_range::from_mask): New function.
> (selftest::test_bit_range_intersects_p): New selftest.
> (selftest::assert_bit_range_from_mask_eq): New.
> (ASSERT_BIT_RANGE_FROM_MASK_EQ): New macro.
> (selftest::assert_no_bit_range_from_mask_eq): New.
> (ASSERT_NO_BIT_RANGE_FROM_MASK): New macro.
> (selftest::test_bit_range_from_mask): New selftest.
> (selftest::analyzer_store_cc_tests): Call the new selftests.
> * store.h (bit_range::intersects_p): New.
> (bit_range::from_mask): New decl.
> (concrete_binding::get_bit_range): New accessor.
> (store_manager::get_concrete_binding): New overload taking
> const bit_range &.
>
> gcc/testsuite/ChangeLog:
> PR analyzer/99212
> * gcc.dg/analyzer/bitfields-1.c: New test.
> * gcc.dg/analyzer/data-model-1.c (struct sbits): Make bitfields
> explicitly signed.
> (test_44): Update test values assigned to the bits to ones that
> fit in the range of the bitfield type.  Remove xfails.
> (test_45): Remove xfails.
>

Hi,

This patch is causing regressions / new failures on armeb (and other
targets according to gcc-testresults):

FAIL: gcc.dg/analyzer/bitfields-1.c (test for excess errors)
Excess errors:
/gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:24:3: warning: UNKNOWN
/gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:26:3: warning: UNKNOWN
/gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:29:3: warning: UNKNOWN
/gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:31:3: warning: UNKNOWN
/gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:36:3: warning: FALSE
/gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:41:3: warning: FALSE
/gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:81:3: warning: UNKNOWN
/gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:83:3: warning: UNKNOWN
/gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:85:3: warning: UNKNOWN
/gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:87:3: warning: UNKNOWN
/gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:92:3: warning: FALSE
/gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:94:3: warning: FALSE
/gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:96:3: warning: FALSE
/gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:113:3: warning: UNKNOWN
/gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:115:3: warning: UNKNOWN
/gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:117:3: warning: UNKNOWN
/gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:119:3: warning: UNKNOWN
/gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:121:3: warning: UNKNOWN
/gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:123:3: warning: UNKNOWN
/gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:125:3: warning: UNKNOWN
/gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:127:3: warning: UNKNOWN

FAIL: gcc.dg/analyzer/data-model-1.c (test for excess errors)
Excess errors:
/gcc/testsuite/gcc.dg/analyzer/data-model-1.c:947:3: warning: UNKNOWN
/gcc/testsuite/gcc.dg/analyzer/data-model-1.c:950:3: warning: UNKNOWN
/gcc/testsuite/gcc.dg/analyzer/data-model-1.c:965:3: warning: UNKNOWN
/gcc/testsuite/gcc.dg/analyzer/data-model-1.c:968:3: warning: UNKNOWN

For instance with target armeb-none-linux-gnueabihf

Can you check?

Thanks,

Christophe


> Signed-off-by: David Malcolm 
> ---
>  gcc/analyzer/region-model-manager.cc |  46 -
>  gcc/analyzer/region-model.cc |  65 ++-
>  gcc/analyzer/region-model.h  |   4 +
>  gcc/analyzer/store.cc| 186 +++
>  gcc/analyzer/store.h |  18 ++
>  gcc/testsuite/gcc.dg/analyzer/b

Re: [committed] analyzer: bitfield fixes [PR99212]

2021-06-09 Thread David Malcolm via Gcc-patches
On Wed, 2021-06-09 at 16:17 +0200, Christophe Lyon wrote:
> On Tue, 8 Jun 2021 at 21:34, David Malcolm via Gcc-patches
>  wrote:
> > 
> > This patch verifies the previous fix for bitfield sizes by
> > implementing
> > enough support for bitfields in the analyzer to get the test cases
> > to pass.
> > 
> > The patch implements support in the analyzer for reading from a
> > BIT_FIELD_REF, and support for folding BIT_AND_EXPR of a mask, to
> > handle
> > the cases generated in tests.
> > 
> > The existing bitfields tests in data-model-1.c turned out to rely
> > on
> > undefined behavior, in that they were assigning values to a signed
> > bitfield that were outside of the valid range of values.  I believe
> > that
> > that's why we were seeing target-specific differences in the test
> > results (PR analyzer/99212).  The patch updates the test to remove
> > the
> > undefined behaviors.
> > 
> > Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
> > Lightly tested with cris-elf.
> > 
> > Pushed to trunk as r12-1303-
> > gd3b1ef7a83c0c0cd5b20a1dd1714b868f3d2b442.
> > 
> > gcc/analyzer/ChangeLog:
> >     PR analyzer/99212
> >     * region-model-manager.cc
> >     (region_model_manager::maybe_fold_binop): Add support for
> > folding
> >     BIT_AND_EXPR of compound_svalue and a mask constant.
> >     * region-model.cc (region_model::get_rvalue_1): Implement
> >     BIT_FIELD_REF in terms of...
> >     (region_model::get_rvalue_for_bits): New function.
> >     * region-model.h (region_model::get_rvalue_for_bits): New
> > decl.
> >     * store.cc (bit_range::from_mask): New function.
> >     (selftest::test_bit_range_intersects_p): New selftest.
> >     (selftest::assert_bit_range_from_mask_eq): New.
> >     (ASSERT_BIT_RANGE_FROM_MASK_EQ): New macro.
> >     (selftest::assert_no_bit_range_from_mask_eq): New.
> >     (ASSERT_NO_BIT_RANGE_FROM_MASK): New macro.
> >     (selftest::test_bit_range_from_mask): New selftest.
> >     (selftest::analyzer_store_cc_tests): Call the new
> > selftests.
> >     * store.h (bit_range::intersects_p): New.
> >     (bit_range::from_mask): New decl.
> >     (concrete_binding::get_bit_range): New accessor.
> >     (store_manager::get_concrete_binding): New overload taking
> >     const bit_range &.
> > 
> > gcc/testsuite/ChangeLog:
> >     PR analyzer/99212
> >     * gcc.dg/analyzer/bitfields-1.c: New test.
> >     * gcc.dg/analyzer/data-model-1.c (struct sbits): Make
> > bitfields
> >     explicitly signed.
> >     (test_44): Update test values assigned to the bits to ones
> > that
> >     fit in the range of the bitfield type.  Remove xfails.
> >     (test_45): Remove xfails.
> > 
> 
> Hi,
> 
> This patch is causing regressions / new failures on armeb (and other
> targets according to gcc-testresults):
> 
> FAIL: gcc.dg/analyzer/bitfields-1.c (test for excess errors)
> Excess errors:
> /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:24:3: warning: UNKNOWN
> /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:26:3: warning: UNKNOWN
> /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:29:3: warning: UNKNOWN
> /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:31:3: warning: UNKNOWN
> /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:36:3: warning: FALSE
> /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:41:3: warning: FALSE
> /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:81:3: warning: UNKNOWN
> /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:83:3: warning: UNKNOWN
> /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:85:3: warning: UNKNOWN
> /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:87:3: warning: UNKNOWN
> /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:92:3: warning: FALSE
> /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:94:3: warning: FALSE
> /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:96:3: warning: FALSE
> /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:113:3: warning: UNKNOWN
> /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:115:3: warning: UNKNOWN
> /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:117:3: warning: UNKNOWN
> /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:119:3: warning: UNKNOWN
> /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:121:3: warning: UNKNOWN
> /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:123:3: warning: UNKNOWN
> /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:125:3: warning: UNKNOWN
> /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:127:3: warning: UNKNOWN
> 
> FAIL: gcc.dg/analyzer/data-model-1.c (test for excess errors)
> Excess errors:
> /gcc/testsuite/gcc.dg/analyzer/data-model-1.c:947:3: warning: UNKNOWN
> /gcc/testsuite/gcc.dg/analyzer/data-model-1.c:950:3: warning: UNKNOWN
> /gcc/testsuite/gcc.dg/analyzer/data-model-1.c:965:3: warning: UNKNOWN
> /gcc/testsuite/gcc.dg/analyzer/data-model-1.c:968:3: warning: UNKNOWN
> 
> For instance with target armeb-none-linux-gnueabihf
> 
> Can you check?

Sorry about this; I can reproduce the behavior and am investigating.

Dave



Re: [committed] analyzer: bitfield fixes [PR99212]

2021-06-15 Thread David Malcolm via Gcc-patches
On Wed, 2021-06-09 at 11:00 -0400, David Malcolm wrote:
> On Wed, 2021-06-09 at 16:17 +0200, Christophe Lyon wrote:
> > On Tue, 8 Jun 2021 at 21:34, David Malcolm via Gcc-patches
> >  wrote:
> > > 
> > > This patch verifies the previous fix for bitfield sizes by
> > > implementing
> > > enough support for bitfields in the analyzer to get the test
> > > cases
> > > to pass.
> > > 
> > > The patch implements support in the analyzer for reading from a
> > > BIT_FIELD_REF, and support for folding BIT_AND_EXPR of a mask, to
> > > handle
> > > the cases generated in tests.
> > > 
> > > The existing bitfields tests in data-model-1.c turned out to rely
> > > on
> > > undefined behavior, in that they were assigning values to a
> > > signed
> > > bitfield that were outside of the valid range of values.  I
> > > believe
> > > that
> > > that's why we were seeing target-specific differences in the test
> > > results (PR analyzer/99212).  The patch updates the test to
> > > remove
> > > the
> > > undefined behaviors.
> > > 
> > > Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
> > > Lightly tested with cris-elf.
> > > 
> > > Pushed to trunk as r12-1303-
> > > gd3b1ef7a83c0c0cd5b20a1dd1714b868f3d2b442.

[...]
> > 
> > This patch is causing regressions / new failures on armeb (and
> > other
> > targets according to gcc-testresults):
> > 
> > FAIL: gcc.dg/analyzer/bitfields-1.c (test for excess errors)
> > Excess errors:
> > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:24:3: warning: UNKNOWN
> > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:26:3: warning: UNKNOWN
> > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:29:3: warning: UNKNOWN
> > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:31:3: warning: UNKNOWN
> > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:36:3: warning: FALSE
> > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:41:3: warning: FALSE
> > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:81:3: warning: UNKNOWN
> > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:83:3: warning: UNKNOWN
> > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:85:3: warning: UNKNOWN
> > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:87:3: warning: UNKNOWN
> > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:92:3: warning: FALSE
> > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:94:3: warning: FALSE
> > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:96:3: warning: FALSE
> > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:113:3: warning:
> > UNKNOWN
> > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:115:3: warning:
> > UNKNOWN
> > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:117:3: warning:


> > UNKNOWN
> > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:119:3: warning:
> > UNKNOWN
> > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:121:3: warning:
> > UNKNOWN
> > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:123:3: warning:
> > UNKNOWN
> > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:125:3: warning:
> > UNKNOWN
> > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:127:3: warning:
> > UNKNOWN
> > 
> > FAIL: gcc.dg/analyzer/data-model-1.c (test for excess errors)
> > Excess errors:
> > /gcc/testsuite/gcc.dg/analyzer/data-model-1.c:947:3: warning:
> > UNKNOWN
> > /gcc/testsuite/gcc.dg/analyzer/data-model-1.c:950:3: warning:
> > UNKNOWN
> > /gcc/testsuite/gcc.dg/analyzer/data-model-1.c:965:3: warning:
> > UNKNOWN
> > /gcc/testsuite/gcc.dg/analyzer/data-model-1.c:968:3: warning:
> > UNKNOWN
> > 
> > For instance with target armeb-none-linux-gnueabihf
> > 
> > Can you check?
> 
> Sorry about this; I can reproduce the behavior and am investigating.
> 

These should be fixed by r12-1491-
gec3fafa9ec7d16b9d89076efd3bac1d1af0502b8; see:
https://gcc.gnu.org/pipermail/gcc-patches/2021-June/572837.html
(I forgot to set the reply-to to this when sending that, oops)

Please let me know if either of these tests are still failing on any
target.

Sorry again about the breakage.

Dave



Re: [committed] analyzer: bitfield fixes [PR99212]

2021-06-17 Thread Christophe Lyon via Gcc-patches
On Wed, 16 Jun 2021 at 00:03, David Malcolm  wrote:
>
> On Wed, 2021-06-09 at 11:00 -0400, David Malcolm wrote:
> > On Wed, 2021-06-09 at 16:17 +0200, Christophe Lyon wrote:
> > > On Tue, 8 Jun 2021 at 21:34, David Malcolm via Gcc-patches
> > >  wrote:
> > > >
> > > > This patch verifies the previous fix for bitfield sizes by
> > > > implementing
> > > > enough support for bitfields in the analyzer to get the test
> > > > cases
> > > > to pass.
> > > >
> > > > The patch implements support in the analyzer for reading from a
> > > > BIT_FIELD_REF, and support for folding BIT_AND_EXPR of a mask, to
> > > > handle
> > > > the cases generated in tests.
> > > >
> > > > The existing bitfields tests in data-model-1.c turned out to rely
> > > > on
> > > > undefined behavior, in that they were assigning values to a
> > > > signed
> > > > bitfield that were outside of the valid range of values.  I
> > > > believe
> > > > that
> > > > that's why we were seeing target-specific differences in the test
> > > > results (PR analyzer/99212).  The patch updates the test to
> > > > remove
> > > > the
> > > > undefined behaviors.
> > > >
> > > > Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
> > > > Lightly tested with cris-elf.
> > > >
> > > > Pushed to trunk as r12-1303-
> > > > gd3b1ef7a83c0c0cd5b20a1dd1714b868f3d2b442.
>
> [...]
> > >
> > > This patch is causing regressions / new failures on armeb (and
> > > other
> > > targets according to gcc-testresults):
> > >
> > > FAIL: gcc.dg/analyzer/bitfields-1.c (test for excess errors)
> > > Excess errors:
> > > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:24:3: warning: UNKNOWN
> > > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:26:3: warning: UNKNOWN
> > > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:29:3: warning: UNKNOWN
> > > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:31:3: warning: UNKNOWN
> > > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:36:3: warning: FALSE
> > > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:41:3: warning: FALSE
> > > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:81:3: warning: UNKNOWN
> > > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:83:3: warning: UNKNOWN
> > > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:85:3: warning: UNKNOWN
> > > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:87:3: warning: UNKNOWN
> > > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:92:3: warning: FALSE
> > > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:94:3: warning: FALSE
> > > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:96:3: warning: FALSE
> > > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:113:3: warning:
> > > UNKNOWN
> > > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:115:3: warning:
> > > UNKNOWN
> > > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:117:3: warning:
>
>
> > > UNKNOWN
> > > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:119:3: warning:
> > > UNKNOWN
> > > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:121:3: warning:
> > > UNKNOWN
> > > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:123:3: warning:
> > > UNKNOWN
> > > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:125:3: warning:
> > > UNKNOWN
> > > /gcc/testsuite/gcc.dg/analyzer/bitfields-1.c:127:3: warning:
> > > UNKNOWN
> > >
> > > FAIL: gcc.dg/analyzer/data-model-1.c (test for excess errors)
> > > Excess errors:
> > > /gcc/testsuite/gcc.dg/analyzer/data-model-1.c:947:3: warning:
> > > UNKNOWN
> > > /gcc/testsuite/gcc.dg/analyzer/data-model-1.c:950:3: warning:
> > > UNKNOWN
> > > /gcc/testsuite/gcc.dg/analyzer/data-model-1.c:965:3: warning:
> > > UNKNOWN
> > > /gcc/testsuite/gcc.dg/analyzer/data-model-1.c:968:3: warning:
> > > UNKNOWN
> > >
> > > For instance with target armeb-none-linux-gnueabihf
> > >
> > > Can you check?
> >
> > Sorry about this; I can reproduce the behavior and am investigating.
> >
>
> These should be fixed by r12-1491-
> gec3fafa9ec7d16b9d89076efd3bac1d1af0502b8; see:
> https://gcc.gnu.org/pipermail/gcc-patches/2021-June/572837.html
> (I forgot to set the reply-to to this when sending that, oops)
>
> Please let me know if either of these tests are still failing on any
> target.
>
> Sorry again about the breakage.

Fixed indeed, thanks

>
> Dave
>