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