1/* Copyright 2020-2023 Free Software Foundation, Inc.
2
3   This program is free software; you can redistribute it and/or modify
4   it under the terms of the GNU General Public License as published by
5   the Free Software Foundation; either version 3 of the License, or
6   (at your option) any later version.
7
8   This program is distributed in the hope that it will be useful,
9   but WITHOUT ANY WARRANTY; without even the implied warranty of
10   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11   GNU General Public License for more details.
12
13   You should have received a copy of the GNU General Public License
14   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
15
16/* Used to insert labels with which we can build a fake line table.  */
17#define LL(N) asm ("line_label_" #N ": .globl line_label_" #N)
18
19volatile int var;
20volatile int bar;
21
22/* Generate some code to take up some space.  */
23#define FILLER do { \
24    var = 99;	    \
25} while (0)
26
27int
28func (void)
29{					/* func prologue */
30  asm ("func_label: .globl func_label");
31  LL (1);	// F1, Ln 16
32  FILLER;
33  LL (2);	// F1, Ln 17
34  FILLER;
35  LL (3);	// F2, Ln 21
36  FILLER;
37  LL (4);	// F2, Ln 22 // F1, Ln 18, !S
38  FILLER;
39  LL (5);	// F1, Ln 19 !S
40  FILLER;
41  LL (6);	// F1, Ln 20
42  FILLER;
43  LL (7);
44  FILLER;
45  return 0;				/* func end */
46}
47
48#ifdef WITHMAIN
49int main () { return 0; }
50#endif
51