public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/114329] New: ICE: verify_gimple failed: 'bit_field_ref' of non-mode-precision operand with bitfield _BitInt()
@ 2024-03-13 20:25 zsojka at seznam dot cz
  2024-03-15 18:12 ` [Bug tree-optimization/114329] " jakub at gcc dot gnu.org
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: zsojka at seznam dot cz @ 2024-03-13 20:25 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 114329
           Summary: ICE: verify_gimple failed: 'bit_field_ref' of
                    non-mode-precision operand with bitfield _BitInt()
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: zsojka at seznam dot cz
  Target Milestone: ---
              Host: x86_64-pc-linux-gnu
            Target: x86_64-pc-linux-gnu

Created attachment 57690
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=57690&action=edit
reduced testcase

Compiler output:
$ x86_64-pc-linux-gnu-gcc testcase.c
testcase.c: In function 'foo':
testcase.c:6:1: error: 'bit_field_ref' of non-mode-precision operand
    6 | foo(void)
      | ^~~
# .MEM_20 = VDEF <.MEM_19>
BIT_FIELD_REF <bf.b, 1, 128> = _9;
during GIMPLE pass: bitintlower0
testcase.c:6:1: internal compiler error: verify_gimple failed
0x155f56d verify_gimple_in_cfg(function*, bool, bool)
        /repo/gcc-trunk/gcc/tree-cfg.cc:5663
0x13ce234 execute_function_todo
        /repo/gcc-trunk/gcc/passes.cc:2088
0x13ce78e execute_todo
        /repo/gcc-trunk/gcc/passes.cc:2142
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

$ x86_64-pc-linux-gnu-gcc -v
Using built-in specs.
COLLECT_GCC=/repo/gcc-trunk/binary-latest-amd64/bin/x86_64-pc-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/repo/gcc-trunk/binary-trunk-r14-9454-20240313184120-g11caf47b599-checking-yes-rtl-df-extra-nobootstrap-amd64/bin/../libexec/gcc/x86_64-pc-linux-gnu/14.0.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /repo/gcc-trunk//configure --enable-languages=c,c++
--enable-valgrind-annotations --disable-nls --enable-checking=yes,rtl,df,extra
--disable-bootstrap --with-cloog --with-ppl --with-isl
--build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu
--target=x86_64-pc-linux-gnu --with-ld=/usr/bin/x86_64-pc-linux-gnu-ld
--with-as=/usr/bin/x86_64-pc-linux-gnu-as --enable-libsanitizer
--disable-libstdcxx-pch
--prefix=/repo/gcc-trunk//binary-trunk-r14-9454-20240313184120-g11caf47b599-checking-yes-rtl-df-extra-nobootstrap-amd64
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 14.0.1 20240313 (experimental) (GCC)

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug tree-optimization/114329] ICE: verify_gimple failed: 'bit_field_ref' of non-mode-precision operand with bitfield _BitInt()
  2024-03-13 20:25 [Bug tree-optimization/114329] New: ICE: verify_gimple failed: 'bit_field_ref' of non-mode-precision operand with bitfield _BitInt() zsojka at seznam dot cz
@ 2024-03-15 18:12 ` jakub at gcc dot gnu.org
  2024-03-16 14:17 ` cvs-commit at gcc dot gnu.org
  2024-03-16 14:18 ` jakub at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: jakub at gcc dot gnu.org @ 2024-03-15 18:12 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |jakub at gcc dot gnu.org
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2024-03-15

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 57712
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=57712&action=edit
gcc14-pr114329.patch

Untested fix.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug tree-optimization/114329] ICE: verify_gimple failed: 'bit_field_ref' of non-mode-precision operand with bitfield _BitInt()
  2024-03-13 20:25 [Bug tree-optimization/114329] New: ICE: verify_gimple failed: 'bit_field_ref' of non-mode-precision operand with bitfield _BitInt() zsojka at seznam dot cz
  2024-03-15 18:12 ` [Bug tree-optimization/114329] " jakub at gcc dot gnu.org
@ 2024-03-16 14:17 ` cvs-commit at gcc dot gnu.org
  2024-03-16 14:18 ` jakub at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2024-03-16 14:17 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:3e8323e873c5af5047507d6b2cfbd12706820ee2

commit r14-9502-g3e8323e873c5af5047507d6b2cfbd12706820ee2
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Sat Mar 16 15:15:29 2024 +0100

    bitint: Fix up stores to large/huge _BitInt bitfields [PR114329]

    The verifier requires BIT_FIELD_REFs with INTEGRAL_TYPE_P first operand
    to have mode precision.  In most cases for the large/huge _BitInt bitfield
    stores the code uses bitfield representatives, which are typically arrays
    of chars, but if the bitfield starts at byte boundary on big endian,
    the code uses as nlhs in lower_mergeable_store COMPONENT_REF of the
    bitfield FIELD_DECL instead, which is fine for the limb accesses,
    but when used for the most significant limb can result in invalid
    BIT_FIELD_REF because the first operand then has BITINT_TYPE and
    usually VOIDmode.

    The following patch adds a helper method for the 4 creatikons of
    BIT_FIELD_REF which when needed adds a VIEW_CONVERT_EXPR.

    2024-03-16  Jakub Jelinek  <jakub@redhat.com>

            PR tree-optimization/114329
            * gimple-lower-bitint.cc (struct bitint_large_huge): Declare
            build_bit_field_ref method.
            (bitint_large_huge::build_bit_field_ref): New method.
            (bitint_large_huge::lower_mergeable_stmt): Use it.

            * gcc.dg/bitint-101.c: New test.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug tree-optimization/114329] ICE: verify_gimple failed: 'bit_field_ref' of non-mode-precision operand with bitfield _BitInt()
  2024-03-13 20:25 [Bug tree-optimization/114329] New: ICE: verify_gimple failed: 'bit_field_ref' of non-mode-precision operand with bitfield _BitInt() zsojka at seznam dot cz
  2024-03-15 18:12 ` [Bug tree-optimization/114329] " jakub at gcc dot gnu.org
  2024-03-16 14:17 ` cvs-commit at gcc dot gnu.org
@ 2024-03-16 14:18 ` jakub at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: jakub at gcc dot gnu.org @ 2024-03-16 14:18 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|ASSIGNED                    |RESOLVED

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Should be fixed now.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-03-16 14:18 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-13 20:25 [Bug tree-optimization/114329] New: ICE: verify_gimple failed: 'bit_field_ref' of non-mode-precision operand with bitfield _BitInt() zsojka at seznam dot cz
2024-03-15 18:12 ` [Bug tree-optimization/114329] " jakub at gcc dot gnu.org
2024-03-16 14:17 ` cvs-commit at gcc dot gnu.org
2024-03-16 14:18 ` jakub at gcc dot gnu.org

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).