xref: /llvm-project/clang/test/Interpreter/code-undo.cpp (revision ac6e9e69bac76be2f05a20cea6ea8d69a0b43d1b)
1dea5a9ccSJun Zhang // UNSUPPORTED: system-aix
2dea5a9ccSJun Zhang // RUN: cat %s | clang-repl | FileCheck %s
3dea5a9ccSJun Zhang extern "C" int printf(const char *, ...);
4dea5a9ccSJun Zhang int x1 = 0;
5dea5a9ccSJun Zhang int x2 = 42;
6dea5a9ccSJun Zhang %undo
7dea5a9ccSJun Zhang int x2 = 24;
8dea5a9ccSJun Zhang auto r1 = printf("x1 = %d\n", x1);
9dea5a9ccSJun Zhang // CHECK: x1 = 0
10dea5a9ccSJun Zhang auto r2 = printf("x2 = %d\n", x2);
11dea5a9ccSJun Zhang // CHECK-NEXT: x2 = 24
12dea5a9ccSJun Zhang 
foo()13dea5a9ccSJun Zhang int foo() { return 1; }
14dea5a9ccSJun Zhang %undo
15dea5a9ccSJun Zhang int foo() { return 2; }
16dea5a9ccSJun Zhang auto r3 = printf("foo() = %d\n", foo());
17dea5a9ccSJun Zhang // CHECK-NEXT: foo() = 2
18dea5a9ccSJun Zhang 
bar()19*8082a002SJun Zhang inline int bar() { return 42;}
20*8082a002SJun Zhang auto r4 = bar();
21*8082a002SJun Zhang %undo
22*8082a002SJun Zhang auto r5 = bar();
23*8082a002SJun Zhang 
24dea5a9ccSJun Zhang %quit
25