From: Ian Lance Taylor Date: Fri, 21 Aug 2009 23:09:17 +0000 (-0700) Subject: Test composite literals with undeclared types. This crashed X-Git-Tag: weekly.2009-11-06~803 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=1f1551f17900ce992f1630f0603ceef1546dc655;p=gostls13.git Test composite literals with undeclared types. This crashed gccgo in a few different places, and crashes 6g as of this writing. Note that the index in a composite literal must be looked up in a different namespace if the composite literal type turns out to be a struct. R=rsc DELTA=36 (36 added, 0 deleted, 0 changed) OCL=33681 CL=33685 --- diff --git a/test/bugs/bug194.go b/test/bugs/bug194.go new file mode 100644 index 0000000000..5f101440ed --- /dev/null +++ b/test/bugs/bug194.go @@ -0,0 +1,32 @@ +// $G $D/$F.go && $L $F.$A && ./$A.out || echo BUG should compile and run + +// 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 + +var v1 = T1(1) +var v2 = T2{2} +var v3 = T3{0:3, 1:4} +var v4 = T4{0:5, 1:6} +var v5 = T5{0:7, 1:8} +var v6 = T2{f:9} +var v7 = T4{f:10} +var v8 = T5{f:11} +var pf func(T1) + +func main() { + if v1 != 1 || v2.f != 2 || v3[0] != 3 || v3[1] != 4 + || v4[0] != 5 || v4[1] != 6 || v5[0] != 7 || v5[1] != 8 + || v6.f != 9 || v7[0] != 10 || v8[0] != 11 { + panic() + } +} + +type T1 int +type T2 struct { f int } +type T3 []int +type T4 [2]int +type T5 map[int] int +const f = 0 diff --git a/test/golden.out b/test/golden.out index 6dc5cc66a6..a813eba85f 100644 --- a/test/golden.out +++ b/test/golden.out @@ -173,3 +173,7 @@ BUG: should compile BUG: errchk: bugs/bug193.go:13: error message does not match 'shift' bugs/bug193.go:13: fatal error: optoas: no entry LSH-float errchk: bugs/bug193.go:14: missing expected error: 'shift' + +=========== bugs/bug194.go +BUG should compile and run +$RUNFILE: line 1: PID Segmentation fault (core dumped) $G $D/$F.go