xref: /netbsd-src/external/gpl3/gdb.old/dist/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.c (revision 3117ece4fc4a4ca4489ba793710b60b0d26bab6c)
1 /* This testcase is part of GDB, the GNU debugger.
2 
3    Copyright 2012-2023 Free Software Foundation, Inc.
4 
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.
9 
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.
14 
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/>.  */
17 
18 volatile int v;
19 
20 static void
21 marker (void)
22 {
23   v++;
24 }
25 
26 /* *R* marks possibly invalid compiler output as the first path component is
27    not absolute.  Still DWARF-4 does not forbid such DWARF; GCC does not
28    produce it.  */
29 
30 #define FUNCBLOCK						\
31 FUNC (compdir_missing__ldir_missing__file_basename)	   /*R*/\
32 FUNC (compdir_missing__ldir_missing__file_relative)	   /*R*/\
33 FUNC (compdir_missing__ldir_missing__file_absolute)		\
34 FUNC (compdir_missing__ldir_relative_file_basename)	   /*R*/\
35 FUNC (compdir_missing__ldir_relative_file_relative)	   /*R*/\
36 FUNC (compdir_missing__ldir_relative_file_absolute)	   /*R*/\
37 FUNC (compdir_missing__ldir_absolute_file_basename)		\
38 FUNC (compdir_missing__ldir_absolute_file_relative)		\
39 FUNC (compdir_missing__ldir_absolute_file_absolute_same)	\
40 FUNC (compdir_missing__ldir_absolute_file_absolute_different)	\
41 FUNC (compdir_relative_ldir_missing__file_basename)	   /*R*/\
42 FUNC (compdir_relative_ldir_missing__file_relative)	   /*R*/\
43 FUNC (compdir_relative_ldir_missing__file_absolute)	   /*R*/\
44 FUNC (compdir_relative_ldir_relative_file_basename)	   /*R*/\
45 FUNC (compdir_relative_ldir_relative_file_relative)	   /*R*/\
46 FUNC (compdir_relative_ldir_relative_file_absolute)	   /*R*/\
47 FUNC (compdir_relative_ldir_absolute_file_basename)	   /*R*/\
48 FUNC (compdir_relative_ldir_absolute_file_relative)	   /*R*/\
49 FUNC (compdir_relative_ldir_absolute_file_absolute_same)   /*R*/\
50 FUNC (compdir_relative_ldir_absolute_file_absolute_different) /*R*/\
51 FUNC (compdir_absolute_ldir_missing__file_basename)		\
52 FUNC (compdir_absolute_ldir_missing__file_relative)		\
53 FUNC (compdir_absolute_ldir_missing__file_absolute_same)	\
54 FUNC (compdir_absolute_ldir_missing__file_absolute_different)	\
55 FUNC (compdir_absolute_ldir_relative_file_basename)		\
56 FUNC (compdir_absolute_ldir_relative_file_relative)		\
57 FUNC (compdir_absolute_ldir_relative_file_absolute_same)	\
58 FUNC (compdir_absolute_ldir_relative_file_absolute_different)	\
59 FUNC (compdir_absolute_ldir_absolute_file_basename_same)	\
60 FUNC (compdir_absolute_ldir_absolute_file_basename_different)	\
61 FUNC (compdir_absolute_ldir_absolute_file_relative_same)	\
62 FUNC (compdir_absolute_ldir_absolute_file_relative_different)	\
63 FUNC (compdir_absolute_ldir_absolute_file_absolute_same)	\
64 FUNC (compdir_absolute_ldir_absolute_file_absolute_different)
65 
66 #define FUNC(name)					\
67   static void						\
68   name (void)						\
69   {							\
70     asm (#name "_label: .globl " #name "_label\n");	\
71     v++;						\
72   }
73 FUNCBLOCK
74 #undef FUNC
75 
76 int
77 main (void)
78 {
79 
80 #define FUNC(name)					\
81   name ();
82 FUNCBLOCK
83 #undef FUNC
84 
85   return 0;
86 }
87