brintos

brintos / llvm-project-archived public Read only

0
0
Text · 749 B · b07841c Raw
47 lines · cpp
1#include <stdio.h>2#include <stdlib.h>3 4int a(int);5int b(int);6int c(int);7 8int a(int val)9{10    if (val <= 1)11        return b(val);12    else if (val >= 3)13        return c(val);14 15    return val;16}17 18int b(int val)19{20    int rc = c(val);21    void *ptr = malloc(1024); // thread step-out of malloc into function b.22    if (!ptr)23        return -1;24    else25        printf("ptr=%p\n", ptr);26    return rc;                // we should reach here after 3 step-over's.27}28 29int c(int val)30{31    return val + 3;32}33 34int main (int argc, char const *argv[])35{36    int A1 = a(1);37    printf("a(1) returns %d\n", A1);38    39    int B2 = b(2);40    printf("b(2) returns %d\n", B2);41    42    int A3 = a(3);43    printf("a(3) returns %d\n", A3);44    45    return 0;46}47