[Bug 1899114] [NEW] internal compiler error: SSA corruption

Jesse 1899114 at bugs.launchpad.net
Fri Oct 9 03:15:03 UTC 2020


Public bug reported:

Ubuntu version: 20.04.1 LTS
GCC version: gcc-10 (Ubuntu 10.2.0-5ubuntu1~20.04) 10.2.0
Minimal preprocessed source code to reproduce:

```c
a() {
  int b;
  __sigsetjmp();
  for (;;) {
    if (b)
      b = c();
    d();
  }
}
```

Command to reproduce: `gcc-10 -O3 -c rofl.c` gives the following error:

```
rofl.c:1:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
    1 | a() {
      | ^
rofl.c: In function ‘a’:
rofl.c:3:3: warning: implicit declaration of function ‘__sigsetjmp’ [-Wimplicit-function-declaration]
    3 |   __sigsetjmp();
      |   ^~~~~~~~~~~
rofl.c:6:11: warning: implicit declaration of function ‘c’ [-Wimplicit-function-declaration]
    6 |       b = c();
      |           ^
rofl.c:7:5: warning: implicit declaration of function ‘d’ [-Wimplicit-function-declaration]
    7 |     d();
      |     ^

Unable to coalesce ssa_names 2 and 4 which are marked as MUST COALESCE.
b_2(ab) and  b_4(ab)
during RTL pass: expand
rofl.c:1:1: internal compiler error: SSA corruption
    1 | a() {
      | ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-10/README.Bugs> for instructions.
```

I tried reproduce with a recent snapshot. Since gcc-snapshot in focal is
actually older than gcc-10, I tried it under groovy instead. And indeed,
I was able to reproduce in groovy's gcc-snapshot ( 11.0.0 20200917
(experimental) [master revision
c12facd2288:cb0617a790f:9fcedcc39153cb3cfa08ebab20aef6cdfb9ed609]) using
a slightly different repro:

```c
a;
b() {
  int c, d;
  __sigsetjmp();
  for (; a;)
    for (; d;) {
      if (c)
        c = e();
      f();
    }
}
```

This file, when compiled with gcc-snapshot, leads to the following
output:

```
rofl11.c:1:1: warning: data definition has no type or storage class
    1 | a;
      | ^
rofl11.c:1:1: warning: type defaults to 'int' in declaration of 'a' [-Wimplicit-int]
rofl11.c:2:1: warning: return type defaults to 'int' [-Wimplicit-int]
    2 | b() {
      | ^
rofl11.c: In function 'b':
rofl11.c:4:3: warning: implicit declaration of function '__sigsetjmp' [-Wimplicit-function-declaration]
    4 |   __sigsetjmp();
      |   ^~~~~~~~~~~
rofl11.c:8:13: warning: implicit declaration of function 'e' [-Wimplicit-function-declaration]
    8 |         c = e();
      |             ^
rofl11.c:9:7: warning: implicit declaration of function 'f' [-Wimplicit-function-declaration]
    9 |       f();
      |       ^

Unable to coalesce ssa_names 3 and 4 which are marked as MUST COALESCE.
c_3(ab) and  c_4(ab)
during RTL pass: expand
rofl11.c:2:1: internal compiler error: SSA corruption
    2 | b() {
      | ^
0x185ffa7 internal_error(char const*, ...)
	???:0
0xe92b7d coalesce_ssa_name(_var_map*)
	???:0
0xe33007 rewrite_out_of_ssa(ssaexpand*)
	???:0
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-snapshot/README.Bugs> for instructions.
```

** Affects: gcc-10 (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gcc-10 in Ubuntu.
https://bugs.launchpad.net/bugs/1899114

Title:
  internal compiler error: SSA corruption

Status in gcc-10 package in Ubuntu:
  New

Bug description:
  Ubuntu version: 20.04.1 LTS
  GCC version: gcc-10 (Ubuntu 10.2.0-5ubuntu1~20.04) 10.2.0
  Minimal preprocessed source code to reproduce:

  ```c
  a() {
    int b;
    __sigsetjmp();
    for (;;) {
      if (b)
        b = c();
      d();
    }
  }
  ```

  Command to reproduce: `gcc-10 -O3 -c rofl.c` gives the following
  error:

  ```
  rofl.c:1:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
      1 | a() {
        | ^
  rofl.c: In function ‘a’:
  rofl.c:3:3: warning: implicit declaration of function ‘__sigsetjmp’ [-Wimplicit-function-declaration]
      3 |   __sigsetjmp();
        |   ^~~~~~~~~~~
  rofl.c:6:11: warning: implicit declaration of function ‘c’ [-Wimplicit-function-declaration]
      6 |       b = c();
        |           ^
  rofl.c:7:5: warning: implicit declaration of function ‘d’ [-Wimplicit-function-declaration]
      7 |     d();
        |     ^

  Unable to coalesce ssa_names 2 and 4 which are marked as MUST COALESCE.
  b_2(ab) and  b_4(ab)
  during RTL pass: expand
  rofl.c:1:1: internal compiler error: SSA corruption
      1 | a() {
        | ^
  Please submit a full bug report,
  with preprocessed source if appropriate.
  See <file:///usr/share/doc/gcc-10/README.Bugs> for instructions.
  ```

  I tried reproduce with a recent snapshot. Since gcc-snapshot in focal
  is actually older than gcc-10, I tried it under groovy instead. And
  indeed, I was able to reproduce in groovy's gcc-snapshot ( 11.0.0
  20200917 (experimental) [master revision
  c12facd2288:cb0617a790f:9fcedcc39153cb3cfa08ebab20aef6cdfb9ed609])
  using a slightly different repro:

  ```c
  a;
  b() {
    int c, d;
    __sigsetjmp();
    for (; a;)
      for (; d;) {
        if (c)
          c = e();
        f();
      }
  }
  ```

  This file, when compiled with gcc-snapshot, leads to the following
  output:

  ```
  rofl11.c:1:1: warning: data definition has no type or storage class
      1 | a;
        | ^
  rofl11.c:1:1: warning: type defaults to 'int' in declaration of 'a' [-Wimplicit-int]
  rofl11.c:2:1: warning: return type defaults to 'int' [-Wimplicit-int]
      2 | b() {
        | ^
  rofl11.c: In function 'b':
  rofl11.c:4:3: warning: implicit declaration of function '__sigsetjmp' [-Wimplicit-function-declaration]
      4 |   __sigsetjmp();
        |   ^~~~~~~~~~~
  rofl11.c:8:13: warning: implicit declaration of function 'e' [-Wimplicit-function-declaration]
      8 |         c = e();
        |             ^
  rofl11.c:9:7: warning: implicit declaration of function 'f' [-Wimplicit-function-declaration]
      9 |       f();
        |       ^

  Unable to coalesce ssa_names 3 and 4 which are marked as MUST COALESCE.
  c_3(ab) and  c_4(ab)
  during RTL pass: expand
  rofl11.c:2:1: internal compiler error: SSA corruption
      2 | b() {
        | ^
  0x185ffa7 internal_error(char const*, ...)
  	???:0
  0xe92b7d coalesce_ssa_name(_var_map*)
  	???:0
  0xe33007 rewrite_out_of_ssa(ssaexpand*)
  	???:0
  Please submit a full bug report,
  with preprocessed source if appropriate.
  Please include the complete backtrace with any bug report.
  See <file:///usr/share/doc/gcc-snapshot/README.Bugs> for instructions.
  ```

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gcc-10/+bug/1899114/+subscriptions



More information about the foundations-bugs mailing list