|  | // compile | 
|  |  | 
|  | // Copyright 2016 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. | 
|  |  | 
|  | // CL 21202 introduced a compiler crash in the handling of a varargs | 
|  | // function in the same recursive group as a function that calls it. | 
|  | // Nothing in the standard library caught the problem, so adding a test. | 
|  |  | 
|  | package p | 
|  |  | 
|  | func F1(p *int, a ...*int) (int, *int) { | 
|  | if p == nil { | 
|  | return F2(), a[0] | 
|  | } | 
|  | return 0, a[0] | 
|  | } | 
|  |  | 
|  | func F2() int { | 
|  | var i0, i1 int | 
|  | a, _ := F1(&i0, &i1) | 
|  | return a | 
|  | } |