https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101851
Bug ID: 101851 Summary: gccgo crashes compiling `x, y := int(0)` Product: gcc Version: 11.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: go Assignee: ian at airs dot com Reporter: rupert.tombs at gmail dot com CC: cmang at google dot com Target Milestone: --- Full reproduction: https://go.godbolt.org/z/39MnE5GEn This source crashes gccgo: ``` package main func main() { x, y := int(0) _, _ = x, y } ``` apparently due to the incorrect short declaration; gc reports "assignment mismatch: 2 variables but 1 value". Full details: ``` Using built-in specs. COLLECT_GCC=/opt/compiler-explorer/gcc-11.2.0/bin/gccgo Target: x86_64-linux-gnu Configured with: ../gcc-11.2.0/configure --prefix=/opt/compiler-explorer/gcc-build/staging --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --disable-bootstrap --enable-multiarch --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --enable-clocale=gnu --enable-languages=c,c++,fortran,ada,go,d --enable-ld=yes --enable-gold=yes --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-linker-build-id --enable-lto --enable-plugins --enable-threads=posix --with-pkgversion=Compiler-Explorer-Build-gcc--binutils-2.36.1 Thread model: posix Supported LTO compression algorithms: zlib gcc version 11.2.0 (Compiler-Explorer-Build-gcc--binutils-2.36.1) COLLECT_GCC_OPTIONS='-fdiagnostics-color=always' '-g' '-o' '/app/output.s' '-masm=intel' '-S' '-v' '-save-temps' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' '/app/' /opt/compiler-explorer/gcc-11.2.0/bin/../libexec/gcc/x86_64-linux-gnu/11.2.0/go1 <source> -quiet -dumpdir /app/ -dumpbase output.go -dumpbase-ext .go -masm=intel -mtune=generic -march=x86-64 -g -version -fdiagnostics-color=always -o /app/output.s -L/opt/compiler-explorer/gcc-11.2.0/bin/../lib/gcc/x86_64-linux-gnu/11.2.0 -L/opt/compiler-explorer/gcc-11.2.0/bin/../lib/gcc/x86_64-linux-gnu -L/opt/compiler-explorer/gcc-11.2.0/bin/../lib/gcc -L/opt/compiler-explorer/gcc-11.2.0/bin/../lib/gcc/x86_64-linux-gnu/11.2.0/../../../../lib64 -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/opt/compiler-explorer/gcc-11.2.0/bin/../lib/gcc/x86_64-linux-gnu/11.2.0/../../../../x86_64-linux-gnu/lib -L/opt/compiler-explorer/gcc-11.2.0/bin/../lib/gcc/x86_64-linux-gnu/11.2.0/../../.. GNU Go (Compiler-Explorer-Build-gcc--binutils-2.36.1) version 11.2.0 (x86_64-linux-gnu) compiled by GNU C version 7.5.0, GMP version 6.1.0, MPFR version 3.1.6, MPC version 1.0.3, isl version isl-0.18-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU Go (Compiler-Explorer-Build-gcc--binutils-2.36.1) version 11.2.0 (x86_64-linux-gnu) compiled by GNU C version 7.5.0, GMP version 6.1.0, MPFR version 3.1.6, MPC version 1.0.3, isl version isl-0.18-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 ``` All compilation options ``` -g -o /tmp/compiler-explorer-compiler2021710-5217-aatpg5.psufb/output.s -masm=intel -S -fdiagnostics-color=always -v -save-temps /tmp/compiler-explorer-compiler2021710-5217-aatpg5.psufb/example.go ``` Full backtrace: ``` go1: internal compiler error: in do_flatten, at go/gofrontend/statements.cc:323 0x16b2bf9 internal_error(char const*, ...) ???:0 0x6e5266 fancy_abort(char const*, int, char const*) ???:0 0x7a1700 Variable_declaration_statement::do_flatten(Gogo*, Named_object*, Block*, Statement_inserter*) ???:0 0x7508fc Flatten::statement(Block*, unsigned long*, Statement*) ???:0 0x7a4014 Statement::traverse(Block*, unsigned long*, Traverse*) ???:0 0x75451d Block::traverse(Traverse*) ???:0 0x754799 Function::traverse(Traverse*) ???:0 0x7547f0 Flatten::function(Named_object*) ???:0 0x75939b Bindings::traverse(Traverse*, bool) ???:0 0x759541 Gogo::traverse(Traverse*) ???:0 0x759b28 Gogo::flatten() ???:0 0x74f12f go_parse_input_files(char const**, unsigned int, bool, bool) ???:0 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. ``` Thank you for maintaining gccgo!