/* This testcase is part of GDB, the GNU debugger. Copyright 2013-2018 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include void funca(void); int count = 0; typedef struct { char *nothing; int f; short s; } foobar; void end_func (int foo, char *bar, foobar *fb, foobar bf) { const char *str = "The End"; const char *st2 = "Is Near"; int b = 12; short c = 5; { int d = 15; int e = 14; const char *foo = "Inside block"; { int f = 42; int g = 19; const char *bar = "Inside block x2"; { short h = 9; h = h +1; /* Inner test breakpoint */ } } } return; /* Backtrace end breakpoint */ } void funcb(int j) { struct foo { int a; int b; }; struct foo bar; bar.a = 42; bar.b = 84; funca(); return; } void funca(void) { foobar fb; foobar *bf = NULL; if (count < 10) { count++; funcb(count); } fb.nothing = "Foo Bar"; fb.f = 42; fb.s = 19; bf = alloca (sizeof (foobar)); bf->nothing = alloca (128); bf->nothing = "Bar Foo"; bf->f = 24; bf->s = 91; end_func(21, "Param", bf, fb); return; } void func1(void) { funca(); return; } int func2(int f) { int c; const char *elided = "Elided frame"; foobar fb; foobar *bf = NULL; fb.nothing = "Elided Foo Bar"; fb.f = 84; fb.s = 38; bf = alloca (sizeof (foobar)); bf->nothing = alloca (128); bf->nothing = "Elided Bar Foo"; bf->f = 48; bf->s = 182; func1(); return 1; } void func3(int i) { func2(i); return; } int func4(int j) { func3(j); return 2; } int func5(int f, int d) { int i = 0; char *random = "random"; i=i+f; func4(i); return i; } int main() { int z = 32; int y = 44; const char *foo1 = "Test"; func5(3,5); return 0; }