|  | // run | 
|  |  | 
|  | // Copyright 2019 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. | 
|  |  | 
|  | // Test that empty init functions are skipped. | 
|  |  | 
|  | package main | 
|  |  | 
|  | import _ "unsafe" // for go:linkname | 
|  |  | 
|  | type initTask struct { | 
|  | state uintptr | 
|  | ndeps uintptr | 
|  | nfns  uintptr | 
|  | } | 
|  |  | 
|  | //go:linkname main_inittask main..inittask | 
|  | var main_inittask initTask | 
|  |  | 
|  | func main() { | 
|  | if nfns := main_inittask.nfns; nfns != 0 { | 
|  | println(nfns) | 
|  | panic("unexpected init funcs") | 
|  | } | 
|  | } | 
|  |  | 
|  | func init() { | 
|  | } | 
|  |  | 
|  | func init() { | 
|  | if false { | 
|  | } | 
|  | } | 
|  |  | 
|  | func init() { | 
|  | for false { | 
|  | } | 
|  | } |