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

            Bug ID: 125453
           Summary: internal compiler error: verify_gimple failed invalid
                    types for ‘bit_xor_expr‘
           Product: gcc
           Version: 17.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: lu.maltsis at postgrad dot manchester.ac.uk
  Target Milestone: ---

```sh
gcc -O1 /tmp/bug.c
/tmp/bug.c: In function ‘main’:
/tmp/bug.c:4:5: error: invalid types for ‘bit_xor_expr’
    4 | int main() {
      |     ^~~~
char *
char *
char[0:] *
_27 = c_19 ^ &b;
during GIMPLE pass: forwprop
/tmp/bug.c:4:5: internal compiler error: verify_gimple failed
0x25a664b internal_error(char const*, ...)
        /home/user/software/gcc/slot-b/src/gcc/diagnostic-global-context.cc:787
0x11dbbe2 verify_gimple_in_cfg(function*, bool, bool)
        /home/user/software/gcc/slot-b/src/gcc/tree-cfg.cc:5554
0x104a39a execute_function_todo
        /home/user/software/gcc/slot-b/src/gcc/passes.cc:2100
0x104ab4e execute_todo
        /home/user/software/gcc/slot-b/src/gcc/passes.cc:2152
/home/user/software/gcc/slot-b/libexec/gcc/x86_64-pc-linux-gnu/17.0.0/cc1
-quiet -imultiarch x86_64-linux-gnu /tmp/bug.c -quiet -dumpdir a- -dumpbase
bug.c -dumpbase-ext .c -mtune=generic -march=x86-64 -O1 -o /tmp/ccFw1v4m.s
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.

$ cat /tmp/bug.c
int g(void);
int f(const char *);

int main() {
  char b[0], *c;
  int d, e;
  for (d = 0, c = b; d < 3; d++, c++) {
    g();
    if (d && e)
      break;
  }
  *c = '\0';
  f(b);
}
```

Compiler Explorer Reproducer: https://godbolt.org/z/64vfKvdvf

Exact version of gcc: trunk
[4cca035](https://github.com/gcc-mirror/gcc/commit/4cca035a0db7f6229b8ad4b09cde98f8d1969e8a)

preprocessed source:
```c
// Target: x86_64-pc-linux-gnu
// Configured with: /home/user/software/gcc/slot-b/src/configure
--prefix=/home/user/software/gcc/slot-b --enable-languages=c,c++
--disable-bootstrap --disable-multilib --with-gmp=/usr --with-mpfr=/usr
--with-mpc=/usr
// Thread model: posix
// Supported LTO compression algorithms: zlib zstd
// gcc version 17.0.0 20260525 (experimental) (GCC)
//
// /tmp/bug.c: In function ‘main’:
// /tmp/bug.c:4:5: error: invalid types for ‘bit_xor_expr’
//     4 | int main() {
//       |     ^~~~
// char *
// char *
// char[0:] *
// _27 = c_19 ^ &b;
// during GIMPLE pass: forwprop
// /tmp/bug.c:4:5: internal compiler error: verify_gimple failed
// 0x25a664b internal_error(char const*, ...)
//      /home/user/software/gcc/slot-b/src/gcc/diagnostic-global-context.cc:787
// 0x11dbbe2 verify_gimple_in_cfg(function*, bool, bool)
//      /home/user/software/gcc/slot-b/src/gcc/tree-cfg.cc:5554
// 0x104a39a execute_function_todo
//      /home/user/software/gcc/slot-b/src/gcc/passes.cc:2100
// 0x104ab4e execute_todo
//      /home/user/software/gcc/slot-b/src/gcc/passes.cc:2152
// -quiet -imultiarch x86_64-linux-gnu /tmp/bug.c -quiet -dumpdir a- -dumpbase
bug.c -dumpbase-ext .c -mtune=generic -march=x86-64 -O1 -freport-bug -o -
-frandom-seed=0 -fdump-noaddr
// Please submit a full bug report, with preprocessed source.
// Please include the complete backtrace with any bug report.
// See <https://gcc.gnu.org/bugs/> for instructions.

// /home/user/software/gcc/slot-b/libexec/gcc/x86_64-pc-linux-gnu/17.0.0/cc1
-quiet -imultiarch x86_64-linux-gnu /tmp/bug.c -quiet -dumpdir a- -dumpbase
bug.c -dumpbase-ext .c -mtune=generic -march=x86-64 -O1 -freport-bug -o -
-frandom-seed=0 -fdump-noaddr

# 0 "/tmp/bug.c"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3
# 0 "<command-line>" 2
# 1 "/tmp/bug.c"
int g(void);
int f(const char *);

int main() {
  char b[0], *c;
  int d, e;
  for (d = 0, c = b; d < 3; d++, c++) {
    g();
    if (d && e)
      break;
  }
  *c = '\0';
  f(b);
}
```

Reply via email to