1// Copyright 2021 The Go Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style 3// license that can be found in the LICENSE file. 4 5package a 6 7// Note that the use of CGO here is solely to trigger external 8// linking, since that is required to trigger that bad behavior 9// in this bug. 10 11// #include <stdlib.h> 12import "C" 13 14func Bad() { 15 m := make(map[int64]A) 16 a := m[0] 17 if len(a.B.C1.D2.E2.F1) != 0 || 18 len(a.B.C1.D2.E2.F2) != 0 || 19 len(a.B.C1.D2.E2.F3) != 0 || 20 len(a.B.C1.D2.E2.F4) != 0 || 21 len(a.B.C1.D2.E2.F5) != 0 || 22 len(a.B.C1.D2.E2.F6) != 0 || 23 len(a.B.C1.D2.E2.F7) != 0 || 24 len(a.B.C1.D2.E2.F8) != 0 || 25 len(a.B.C1.D2.E2.F9) != 0 || 26 len(a.B.C1.D2.E2.F10) != 0 || 27 len(a.B.C1.D2.E2.F11) != 0 || 28 len(a.B.C1.D2.E2.F16) != 0 { 29 panic("bad") 30 } 31 C.malloc(100) 32} 33 34type A struct { 35 B 36} 37 38type B struct { 39 C1 C 40 C2 C 41} 42 43type C struct { 44 D1 D 45 D2 D 46} 47 48type D struct { 49 E1 E 50 E2 E 51 E3 E 52 E4 E 53} 54 55type E struct { 56 F1 string 57 F2 string 58 F3 string 59 F4 string 60 F5 string 61 F6 string 62 F7 string 63 F8 string 64 F9 string 65 F10 string 66 F11 string 67 F12 string 68 F13 string 69 F14 string 70 F15 string 71 F16 string 72} 73