diff options
Diffstat (limited to 'packages/Python/lldbsuite/test/python_api/thread/main2.cpp')
| -rw-r--r-- | packages/Python/lldbsuite/test/python_api/thread/main2.cpp | 54 | 
1 files changed, 54 insertions, 0 deletions
diff --git a/packages/Python/lldbsuite/test/python_api/thread/main2.cpp b/packages/Python/lldbsuite/test/python_api/thread/main2.cpp new file mode 100644 index 000000000000..a95d7d7aec1a --- /dev/null +++ b/packages/Python/lldbsuite/test/python_api/thread/main2.cpp @@ -0,0 +1,54 @@ +//===-- main.c --------------------------------------------------*- C++ -*-===// +// +//                     The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +#include <stdio.h> +#include <stdlib.h> + +int a(int); +int b(int); +int c(int); + +int a(int val) +{ +    if (val <= 1) +        return b(val); +    else if (val >= 3) +        return c(val); + +    return val; +} + +int b(int val) +{ +    int rc = c(val); +    void *ptr = malloc(1024); // thread step-out of malloc into function b. +    if (!ptr) +        return -1; +    else +        printf("ptr=%p\n", ptr); +    return rc;                // we should reach here after 3 step-over's. +} + +int c(int val) +{ +    return val + 3; +} + +int main (int argc, char const *argv[]) +{ +    int A1 = a(1); +    printf("a(1) returns %d\n", A1); +     +    int B2 = b(2); +    printf("b(2) returns %d\n", B2); +     +    int A3 = a(3); +    printf("a(3) returns %d\n", A3); +     +    return 0; +}  | 
