https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108688

            Bug ID: 108688
           Summary: error: ‘bit_field_ref’ of non-mode-precision operand
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dcb314 at hotmail dot com
  Target Milestone: ---

For this C code:

union {
  signed f1 : 7;
  signed f2 : 2
} func_6_l_2225;
g_139, g_417, func_6___trans_tmp_7;
main() {
  for (; g_417; g_417 -= 1) {
    func_6_l_2225.f1 = g_139;
    func_6_l_2225.f2 ^= func_6___trans_tmp_7;
  }
}

Compiled by recent gcc, does this:

$ ~/gcc/results/bin/gcc -c -O2 -w bug882.c
bug882.c: In function ‘main’:
bug882.c:6:1: error: ‘bit_field_ref’ of non-mode-precision operand
    6 | main() {
      | ^~~~
_ifc__31 = BIT_FIELD_REF <_2, 2, 0>;
during GIMPLE pass: ifcvt
bug882.c:6:1: internal compiler error: verify_gimple failed

$ ~/gcc/results/bin/gcc -v 2>&1 | fgrep exp
gcc version 13.0.1 20230206 (experimental) (45e01229af33a3dc) 
$

The bug first seems to occur sometime between date 20221002
and 20221028.

Reply via email to