Commit | Line | Data |
---|---|---|
88b9d363 | 1 | /* Copyright 2020-2022 Free Software Foundation, Inc. |
e8b6c1da TT |
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 | ||
19 | volatile int var; | |
20 | volatile int bar; | |
21 | ||
22 | /* Generate some code to take up some space. */ | |
23 | #define FILLER do { \ | |
24 | var = 99; \ | |
25 | } while (0) | |
26 | ||
27 | int | |
28 | func (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 | |
49 | int main () { return 0; } | |
50 | #endif |