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

            Bug ID: 61273
           Summary: gccgo: ICE in
                    Unsafe_type_conversion_expression::do_get_backend
                    [GoSmith]
           Product: gcc
           Version: 4.10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: go
          Assignee: ian at airs dot com
          Reporter: dvyukov at google dot com

gccgo (GCC) 4.10.0 20140516 (experimental)

The program is:

package main
func main() {
    c := make(chan bool, 1)
    for ; false; c <- false {
    }
}

$ go build -compiler=gccgo src.go 


src.go:6:1: error: expected '{'
 }
 ^
src.go:4:8: error: expected type
  for ; false; c <- false {
        ^
go1: internal compiler error: in do_get_backend, at
go/gofrontend/expressions.cc:3532
0x5a21eb Unsafe_type_conversion_expression::do_get_backend(Translate_context*)
    ../../gcc/go/gofrontend/expressions.cc:3527
0x5bb6eb Call_expression::do_get_backend(Translate_context*)
    ../../gcc/go/gofrontend/expressions.cc:9425
0x60a1d8 Send_statement::do_get_backend(Translate_context*)
    ../../gcc/go/gofrontend/statements.cc:4513
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
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
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


gc successfully compiles the code.

Reply via email to