[Bug d/107592] New: ICE: gdc segfault on label continue

zorael at gmail dot com gcc-bugzilla@gcc.gnu.org
Wed Nov 9 16:06:29 GMT 2022


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

            Bug ID: 107592
           Summary: ICE: gdc segfault on label continue
           Product: gcc
           Version: 12.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: d
          Assignee: ibuclaw at gdcproject dot org
          Reporter: zorael at gmail dot com
  Target Milestone: ---

Manjaro/Arch x86_64, gdc from gcc-d 12.2.0-1 from official repositories.

The following code ICEs with a segmentation fault.

```
void main()
{
    foo(string.init);
}

void foo(Things...)(Things things)
{
    label:
    foreach (thing; things)
    {
        continue label;
    }
}
```

`gdc -v -save-temps -freport-bug app.d` output:

```
Using built-in specs.
COLLECT_GCC=gdc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /build/gcc/src/gcc/configure
--enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++,d --enable-bootstrap
--prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man
--infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/
--with-build-config=bootstrap-lto --with-linker-hash-style=gnu
--with-system-zlib --enable-__cxa_atexit --enable-cet=auto
--enable-checking=release --enable-clocale=gnu --enable-default-pie
--enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object
--enable-libstdcxx-backtrace --enable-link-serialization=1
--enable-linker-build-id --enable-lto --enable-multilib --enable-plugin
--enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch
--disable-werror
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.2.0 (GCC) 
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-freport-bug' '-o' 'a.out'
'-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'a-'
 /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/d21 app.d -quiet -dumpdir a- -dumpbase
app.d -dumpbase-ext .d -mtune=generic -march=x86-64 -version -freport-bug -v -o
a-app.s
GNU D (GCC) version 12.2.0 (x86_64-pc-linux-gnu)
        compiled by GNU C version 12.2.0, GMP version 6.2.1, MPFR version
4.1.0-p13, MPC version 1.2.1, isl version isl-0.25-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU D (GCC) version 12.2.0 (x86_64-pc-linux-gnu)
        compiled by GNU C version 12.2.0, GMP version 6.2.1, MPFR version
4.1.0-p13, MPC version 1.2.1, isl version isl-0.25-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
binary    /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/d21
version   v2.100.1

predefs   GNU D_Version2 LittleEndian GNU_DWARF2_Exceptions GNU_StackGrowsDown
GNU_InlineAsm D_LP64 D_PIC D_PIE assert D_PreConditions D_PostConditions
D_Invariants D_ModuleInfo D_Exceptions D_TypeInfo all X86_64 D_HardFloat Posix
linux CRuntime_Glibc CppRuntime_Gcc
parse     app
importall app
import    object       
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/object.d)
import    core.attribute       
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/core/attribute.d)
import    gcc.attributes       
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/gcc/attributes.d)
import    core.internal.hash   
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/core/internal/hash.d)
import    core.internal.traits 
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/core/internal/traits.d)
import    core.internal.entrypoint     
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/core/internal/entrypoint.d)
import    core.internal.array.appending
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/core/internal/array/appending.d)
import    core.internal.array.comparison       
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/core/internal/array/comparison.d)
import    core.internal.array.equality 
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/core/internal/array/equality.d)
import    core.internal.array.casting  
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/core/internal/array/casting.d)
import    core.internal.array.concatenation    
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/core/internal/array/concatenation.d)
import    core.internal.array.construction     
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/core/internal/array/construction.d)
import    core.internal.array.capacity 
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/core/internal/array/capacity.d)
import    core.internal.dassert
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/core/internal/dassert.d)
import    core.atomic  
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/core/atomic.d)
import    core.internal.attributes     
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/core/internal/attributes.d)
import    core.internal.atomic 
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/core/internal/atomic.d)
import    gcc.builtins 
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/gcc/builtins.d)
import    gcc.config   
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/gcc/config.d)
import    core.internal.destruction    
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/core/internal/destruction.d)
import    core.internal.moving 
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/core/internal/moving.d)
import    core.internal.postblit       
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/core/internal/postblit.d)
import    core.internal.switch_
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/core/internal/switch_.d)
import    core.lifetime
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/core/lifetime.d)
import    core.builtins
(/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/d/core/builtins.d)
semantic  app
entry     main  app.d
semantic2 app
semantic3 app
code      app
function  D main
function  app._d_cmain!().main
function  app.foo!string.foo
during GIMPLE pass: cfg
app.d: In function ‘foo’:
app.d:6:6: internal compiler error: Segmentation fault
    6 | void foo(Things...)(Things things)
      |      ^
0x1ac32f4 internal_error(char const*, ...)
        ???:0
0xe98543 cleanup_dead_labels()
        ???:0
Please submit a full bug report, with preprocessed source.
Please include the complete backtrace with any bug report.
See <https://bugs.archlinux.org/> for instructions.
```


More information about the Gcc-bugs mailing list