brintos

brintos / llvm-project-archived public Read only

0
0
Text · 829 B · f6ccb03 Raw
44 lines · c
1#include <stdio.h>2 3#define INLINE inline __attribute__((always_inline))4 5int6func_not_inlined (void)7{8    printf ("Called func_not_inlined.\n");9    return 0;10}11 12INLINE int13func_inlined (void)14{15    static int func_inline_call_count = 0;16    printf ("Called func_inlined.\n");17    ++func_inline_call_count;  // Set break point at this line.18    printf ("Returning func_inlined call count: %d.\n", func_inline_call_count);19    return func_inline_call_count;20}21 22extern int func_inlined (void);23 24int25main (int argc, char **argv)26{27  printf ("Starting...\n");28 29  int (*func_ptr) (void);30  func_ptr = func_inlined;31 32  int a = func_inlined();33  printf("First call to func_inlined() returns: %d.\n", a);34 35  func_not_inlined ();36 37  func_ptr ();38 39  printf("Last call to func_inlined() returns: %d.\n", func_inlined ());40  return 0;41}42 43 44