This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug go/61204] New: gccgo: ICE in in fold_convert_loc
- From: "dvyukov at google dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 16 May 2014 19:07:58 +0000
- Subject: [Bug go/61204] New: gccgo: ICE in in fold_convert_loc
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61204
Bug ID: 61204
Summary: gccgo: ICE in in fold_convert_loc
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: go
Assignee: ian at airs dot com
Reporter: dvyukov at google dot com
$ gccgo -v
Using built-in specs.
COLLECT_GCC=gccgo
COLLECT_LTO_WRAPPER=libexec/gcc/x86_64-unknown-linux-gnu/4.10.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --enable-languages=c,c++,go --disable-bootstrap
--enable-checking=yes --disable-multilib --prefix=gcc_trunk/install
Thread model: posix
gcc version 4.10.0 20140516 (experimental) (GCC)
The program is:
package main
func main() {
type id2 chan map[uintptr]string
type id3 [0]string
type id4 float64
_ = <-<-make(chan id2, cap(id3([0]string{})))
type id5 id2
_, _ = <-<-make(chan chan string)
var id6 id5 = id5(id2(make(chan map[uintptr]string, ((1) + ((<-make(chan
int, ((1) + ((1) + (([]int{})[((1) * (1))]))))) * ((1) + ((((((([]int{})[1]) +
(<-make(chan int))) * ((<-make(chan int)) + (1))) * (<-<-<-make(chan chan chan
int, 1))) + (1)) * (<-make(chan int)))))))))
type id7 id3
_, _, _ = map[id4]bool{}, ([]float64{})[1], (((<-<-<-<-make(chan chan chan
chan int, ((<-<-make(chan chan int)) * (1)))) * (1)) +
(([]int{})[((((<-<-<-<-<-make(chan chan chan chan chan int, 1)) + ((1) *
(((<-<-make(chan chan []int))[1]) + (1)))) * ((([]int{})[<-<-make(chan chan
int, ((1)*(1)))]) + ((<-<-make(chan chan int)) * ((1) + (<-make(chan int))))))
* (<-make(chan int, 1)))]))
id8 := id7(id3([0]string{}))
_, _, _, id8 = [0]int{}, <-<-make(chan chan [0]int), ((<-<-make(chan chan
int, ([]int{})[([]int{})[<-make(chan int)]])) + (<-<-([]chan chan
int{})[<-make(chan int, (<-<-<-make(chan chan chan []int, 1))[<-make(chan int,
1)])])), id7(id3([0]string{}))
_ = id8
_ = id6
}
$ go build -compiler=gccgo src.go
# command-line-arguments
go1: internal compiler error: in fold_convert_loc, at fold-const.c:2072
0x7ce963 fold_convert_loc(unsigned int, tree_node*, tree_node*)
../../gcc/fold-const.c:2072
0x5c6bc5 Gcc_backend::temporary_variable(Bfunction*, Bblock*, Btype*,
Bexpression*, bool, Location, Bstatement**)
../../gcc/go/go-gcc.cc:2483
0x6080a4 Temporary_statement::do_get_backend(Translate_context*)
../../gcc/go/gofrontend/statements.cc:460
0x5db097 Block::get_backend(Translate_context*)
../../gcc/go/gofrontend/gogo.cc:5454
0x60741c Block_statement::do_get_backend(Translate_context*)
../../gcc/go/gofrontend/statements.cc:1811
0x5db097 Block::get_backend(Translate_context*)
../../gcc/go/gofrontend/gogo.cc:5454
0x5dc925 Function::build(Gogo*, Named_object*)
../../gcc/go/gofrontend/gogo.cc:5062
0x5ddc57 Named_object::get_backend(Gogo*, std::vector<Bexpression*,
std::allocator<Bexpression*> >&, std::vector<Btype*, std::allocator<Btype*> >&,
std::vector<Bfunction*, std::allocator<Bfunction*> >&)
../../gcc/go/gofrontend/gogo.cc:6753
0x5e2b5c Gogo::write_globals()
../../gcc/go/gofrontend/gogo.cc:1136