URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [go.test/] [test/] [fixedbugs/] [bug099.go] - Rev 700
Compare with Previous | Blame | View Log
// $G $D/$F.go && $L $F.$A && ./$A.out || echo BUG should not crash// Copyright 2009 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.package main// Interfacetype I interface { F() int }// Implements interfacetype S struct { }func (s *S) F() int { return 1 }// Allocates S but returns I// Arg is unused but important:// if you take it out (and the 0s below)// then the bug goes away.func NewI(i int) I {return new(S)}// Uses interface method.func Use(x I) {x.F()}func main() {i := NewI(0);Use(i);// Again, without temporary// Crashes because x.F is 0.Use(NewI(0));}
