1dea5a9ccSJun Zhang // RUN: clang-repl "int i = 10;" 'extern "C" int printf(const char*,...);' \
2dea5a9ccSJun Zhang // RUN:            'auto r1 = printf("i = %d\n", i);' | FileCheck --check-prefix=CHECK-DRIVER %s
3dea5a9ccSJun Zhang // REQUIRES: host-supports-jit
4dea5a9ccSJun Zhang // UNSUPPORTED: system-aix
5dea5a9ccSJun Zhang // CHECK-DRIVER: i = 10
6dea5a9ccSJun Zhang // RUN: cat %s | clang-repl | FileCheck %s
7dea5a9ccSJun Zhang extern "C" int printf(const char *, ...);
8dea5a9ccSJun Zhang int x1 = 0;
9dea5a9ccSJun Zhang int x2 = 42;
10dea5a9ccSJun Zhang %undo
11dea5a9ccSJun Zhang int x2 = 24;
12dea5a9ccSJun Zhang auto r1 = printf("x1 = %d\n", x1);
13dea5a9ccSJun Zhang // CHECK: x1 = 0
14dea5a9ccSJun Zhang auto r2 = printf("x2 = %d\n", x2);
15dea5a9ccSJun Zhang // CHECK-NEXT: x2 = 24
16dea5a9ccSJun Zhang 
foo()17dea5a9ccSJun Zhang int foo() { return 1; }
18dea5a9ccSJun Zhang %undo
19dea5a9ccSJun Zhang int foo() { return 2; }
20dea5a9ccSJun Zhang auto r3 = printf("foo() = %d\n", foo());
21dea5a9ccSJun Zhang // CHECK-NEXT: foo() = 2
22dea5a9ccSJun Zhang 
bar()23*8082a002SJun Zhang inline int bar() { return 42;}
24*8082a002SJun Zhang auto r4 = bar();
25*8082a002SJun Zhang %undo
26*8082a002SJun Zhang auto r5 = bar();
27*8082a002SJun Zhang 
28dea5a9ccSJun Zhang %quit
29