1 /* This testcase is part of GDB, the GNU debugger. 2 3 Copyright 2019-2024 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 #include <stdlib.h> 19 20 int bar (void); 21 int baz (int); 22 void skip1_test_skip_file_and_function (void); 23 void test_skip_file_and_function (void); 24 25 __attribute__((__always_inline__)) static inline int 26 foo (void) 27 { 28 return bar (); 29 } 30 31 int 32 main () 33 { 34 volatile int x; 35 36 /* step immediately into the inlined code */ 37 baz (foo ()); 38 39 /* step first over non-inline code, this involves a different code path */ 40 x = 0; x = baz (foo ()); 41 42 test_skip_file_and_function (); 43 44 return 0; 45 } 46 47 static void 48 test_skip (void) 49 { 50 } 51 52 static void 53 end_test_skip_file_and_function (void) 54 { 55 abort (); 56 } 57 58 void 59 test_skip_file_and_function (void) 60 { 61 test_skip (); 62 skip1_test_skip_file_and_function (); 63 end_test_skip_file_and_function (); 64 } 65