]>
Commit | Line | Data |
---|---|---|
1d506c26 | 1 | /* Copyright 2023-2024 Free Software Foundation, Inc. |
fe6356de CL |
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 <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.gnu.org_licenses_&d=DwIDAg&c=jf_iaSHvJObTbx-siA1ZOg&r=RFEmMkZAk--_wFGN5tkM_A&m=hvslrRyYSFfiB2uOFjd7I62ZBKNJkGFWTdsHWVjwDIkK3MWESdWS4tI89FoblXn9&s=Ety3VhMg8aZcBncPPcPCS5XzUde9hjKVulkt8r7mD2k&e= >. */ | |
15 | ||
16 | /* The purpose of this test is to create a DWARF line table that contains two | |
17 | or more entries for the same line. When stepping (forwards or backwards), | |
18 | GDB should step over the entire line and not just a particular entry in | |
19 | the line table. */ | |
20 | ||
21 | int | |
22 | main (void) | |
23 | { /* TAG: main prologue */ | |
24 | asm ("main_label: .globl main_label"); | |
25 | int i = 1, j = 2, k; | |
26 | float f1 = 2.0, f2 = 4.1, f3; | |
27 | const char *str_1 = "foo", *str_2 = "bar", *str_3; | |
28 | ||
29 | asm ("line1: .globl line1"); | |
30 | k = i; f3 = f1; str_3 = str_1; /* TAG: line 1 */ | |
31 | ||
32 | asm ("line2: .globl line2"); | |
33 | k = j; f3 = f2; str_3 = str_2; /* TAG: line 2 */ | |
34 | ||
35 | asm ("line3: .globl line3"); | |
36 | k = i; f3 = f1; str_3 = str_1; /* TAG: line 3 */ | |
37 | ||
38 | asm ("line4: .globl line4"); | |
39 | k = j; f3 = f2; str_3 = str_2; /* TAG: line 4 */ | |
40 | ||
41 | asm ("line5: .globl line5"); | |
42 | k = i; f3 = f1; str_3 = str_1; /* TAG: line 5 */ | |
43 | ||
44 | asm ("line6: .globl line6"); | |
45 | k = j; f3 = f2; str_3 = str_2; /* TAG: line 6 */ | |
46 | ||
47 | asm ("line7: .globl line7"); | |
48 | k = i; f3 = f1; str_3 = str_1; /* TAG: line 7 */ | |
49 | ||
50 | asm ("line8: .globl line8"); | |
51 | k = j; f3 = f2; str_3 = str_2; /* TAG: line 8 */ | |
52 | ||
53 | asm ("main_return: .globl main_return"); | |
54 | k = j; f3 = f2; str_3 = str_2; /* TAG: main return */ | |
55 | ||
56 | asm ("end_of_sequence: .globl end_of_sequence"); | |
57 | return 0; /* TAG: main return */ | |
58 | } |