Commit df1cd1b0 authored by Keith Packard's avatar Keith Packard Committed by Henrik Brix Andersen
Browse files

tests/stack_unwind: Avoid inlining and tail-calls



We want the stack trace to show the correct nesting of functions,
so we need to prevent the compiler from in-lining functions or
performing tail-call optimizations.

Add __noinline to prevent inlining. Add another printf in each
function to avoid tail calls.

Signed-off-by: default avatarKeith Packard <keithp@keithp.com>
parent f50ee8c1
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@
static void func1(int a);
static void func2(int a);

static void func2(int a)
static void __noinline func2(int a)
{
	printf("%d: %s\n", a, __func__);

@@ -21,12 +21,14 @@ static void func2(int a)
	}

	func1(a + 1);
	printf("bottom %d: %s\n", a, __func__);
}

static void func1(int a)
static void __noinline func1(int a)
{
	printf("%d: %s\n", a, __func__);
	func2(a + 1);
	printf("bottom %d: %s\n", a, __func__);
}

int main(void)