Files
clang-p2996/lldb/test/API/functionalities/breakpoint/breakpoint_locations/main.c
Fred Riss c182be211a [lldb/testsuite] Tweak TestBreakpointLocations.py to pass for arm64
The test checks that we correctly set the right number of breakpoints
when breaking into an `always_inline` function. The line of this
funstion selected for this test was the return statement, but with
recent compiler, this return statement doesn't necessarily exist after
inlining, even at O0.

Switch the breakpoint to a different line of the inline function.
2020-03-18 20:52:28 -07:00

44 lines
829 B
C

#include <stdio.h>
#define INLINE inline __attribute__((always_inline))
int
func_not_inlined (void)
{
printf ("Called func_not_inlined.\n");
return 0;
}
INLINE int
func_inlined (void)
{
static int func_inline_call_count = 0;
printf ("Called func_inlined.\n");
++func_inline_call_count; // Set break point at this line.
printf ("Returning func_inlined call count: %d.\n", func_inline_call_count);
return func_inline_call_count;
}
extern int func_inlined (void);
int
main (int argc, char **argv)
{
printf ("Starting...\n");
int (*func_ptr) (void);
func_ptr = func_inlined;
int a = func_inlined();
printf("First call to func_inlined() returns: %d.\n", a);
func_not_inlined ();
func_ptr ();
printf("Last call to func_inlined() returns: %d.\n", func_inlined ());
return 0;
}