]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/testsuite/gdb.arch/i386-size-overlap.c
Update copyright year range in all GDB files
[thirdparty/binutils-gdb.git] / gdb / testsuite / gdb.arch / i386-size-overlap.c
CommitLineData
f7a6bb70
DJ
1/* Overlapping symbol sizes test program.
2
e2882c85 3 Copyright 2007-2018 Free Software Foundation, Inc.
f7a6bb70
DJ
4
5 This file is part of GDB.
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
a9762ec7 9 the Free Software Foundation; either version 3 of the License, or
f7a6bb70 10 (at your option) any later version.
a9762ec7 11
f7a6bb70
DJ
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
a9762ec7 16
f7a6bb70 17 You should have received a copy of the GNU General Public License
a9762ec7 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
f7a6bb70
DJ
19
20#ifdef SYMBOL_PREFIX
21#define SYMBOL(str) SYMBOL_PREFIX #str
22#else
23#define SYMBOL(str) #str
24#endif
25
26void
27trap (void)
28{
29 asm ("int $0x03");
30}
31
32/* Jump from a function with its symbol size set, to a function
33 named by a local label. GDB should report the `main' function
34 even for the rest, after the global `inner' ends. */
35
36asm(".text\n"
37 " .align 8\n"
38 " .globl " SYMBOL (main) "\n"
39 SYMBOL (main) ":\n"
40 " pushl %ebp\n"
41 " mov %esp, %ebp\n"
42 " call .Lfunc\n"
43 " ret\n"
44 SYMBOL (inner) ":\n"
45 " ret\n"
46 " .size " SYMBOL (inner) ", .-" SYMBOL (inner) "\n"
47 ".Lfunc:\n"
48 " pushl %ebp\n"
49 " mov %esp, %ebp\n"
50 " call " SYMBOL (trap) "\n"
51 " .size " SYMBOL (main) ", .-" SYMBOL (main) "\n");