Re: ld plugin bfd_make_readable leak
[binutils-gdb.git] / gdb / testsuite / gdb.base / symbol-alias2.c
blob09e2660b410d05c76cc2e868b6b8242a377c1d92
1 /* This test is part of GDB, the GNU debugger.
3 Copyright 2017-2024 Free Software Foundation, Inc.
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>. */
18 struct S
20 int field1;
21 int field2;
24 struct S g_var_s = { 1, 2 };
26 static int g_var = 1;
28 #ifdef __cplusplus
29 /* So that the alias attribute below work without having to figure out
30 this function's mangled name. */
31 static struct S *func (void) asm ("func");
32 #endif
34 static struct S *
35 func (void)
37 return &g_var_s;
40 struct S *func_alias (void) __attribute__ ((alias ("func")));
42 extern struct S g_var_s_alias __attribute__ ((alias ("g_var_s")));
44 extern struct S g_var_s_alias2 __attribute__ ((alias ("g_var_s_alias")));
46 extern int g_var_alias __attribute__ ((alias ("g_var")));
48 extern int g_def_var_alias __attribute__ ((alias ("g_def_var")));
50 int g_def_var = 2;
52 extern int g_def_var_alias2 __attribute__ ((alias ("g_def_var_alias")));