// REQUIRES: host-supports-jit // UNSUPPORTED: system-aix // RUN: cat %s | clang-repl -Xcc -Xclang -Xcc -verify | FileCheck %s // RUN: %clang_cc1 -verify -fincremental-extensions -emit-llvm -o - %s \ // RUN: | FileCheck --check-prefix=CODEGEN-CHECK %s // expected-no-diagnostics //CODEGEN-CHECK-COUNT-2: define internal void @__stmts__ //CODEGEN-CHECK-NOT: define internal void @__stmts__ extern "C" int printf(const char*,...); template T call() { printf("called\n"); return T(); } call(); // CHECK: called int i = 1; ++i; printf("i = %d\n", i); // CHECK: i = 2 namespace Ns { void f(){ i++; } } Ns::f(); void g() { ++i; } g(); ::g(); printf("i = %d\n", i); // CHECK-NEXT: i = 5 for (; i > 4; --i) printf("i = %d\n", i); // CHECK-NEXT: i = 5 {++i;} for (; i > 4; --i) { printf("i = %d\n", i); }; // CHECK-NEXT: i = 5 int j = i; printf("j = %d\n", j); // CHECK-NEXT: j = 4 {i = 0; printf("i = %d (global scope)\n", i);} // CHECK-NEXT: i = 0 while (int i = 1) { printf("i = %d (while condition)\n", i--); break; } // CHECK-NEXT: i = 1 if (int i = 2) printf("i = %d (if condition)\n", i); // CHECK-NEXT: i = 2 switch (int i = 3) { default: printf("i = %d (switch condition)\n", i); } // CHECK-NEXT: i = 3 for (int i = 4; i > 3; --i) printf("i = %d (for-init)\n", i); // CHECK-NEXT: i = 4 for (const auto &i : "5") printf("i = %c (range-based for-init)\n", i); // CHECK-NEXT: i = 5 int *aa=nullptr; if (auto *b=aa) *b += 1; while (auto *b=aa) ; for (auto *b=aa; b; *b+=1) ;