• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2022 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
5#define NOSPLIT 7
6#define NOFRAME 512
7
8TEXT ·asmMain(SB),0,$0-0
9	CALL ·startSelf(SB)
10	CALL ·startChain(SB)
11	CALL ·startRec(SB)
12	RET
13
14// Test reporting of basic over-the-limit
15TEXT ·startSelf(SB),NOSPLIT,$1000-0
16	RET
17
18// Test reporting of multiple over-the-limit chains
19TEXT ·startChain(SB),NOSPLIT,$16-0
20	CALL ·chain0(SB)
21	CALL ·chain1(SB)
22	CALL ·chain2(SB)
23	RET
24TEXT ·chain0(SB),NOSPLIT,$32-0
25	CALL ·chainEnd(SB)
26	RET
27TEXT ·chain1(SB),NOSPLIT,$48-0 // Doesn't go over
28	RET
29TEXT ·chain2(SB),NOSPLIT,$64-0
30	CALL ·chainEnd(SB)
31	RET
32TEXT ·chainEnd(SB),NOSPLIT,$1000-0 // Should be reported twice
33	RET
34
35// Test reporting of rootless recursion
36TEXT ·startRec(SB),NOSPLIT|NOFRAME,$0-0
37	CALL ·startRec0(SB)
38	RET
39TEXT ·startRec0(SB),NOSPLIT|NOFRAME,$0-0
40	CALL ·startRec(SB)
41	RET
42