[committed] analyzer: bitfield fixes [PR99212]
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]
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]
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]
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]
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 >