// REQUIRES: host-supports-jit // UNSUPPORTED: system-aix // RUN: cat %s | clang-repl | FileCheck %s // RUN: cat %s | clang-repl -Xcc -Xclang -Xcc -verify -Xcc -O2 | FileCheck %s extern "C" int printf(const char *, ...); auto l1 = []() { printf("ONE\n"); return 42; }; auto l2 = []() { printf("TWO\n"); return 17; }; auto r1 = l1(); // CHECK: ONE auto r2 = l2(); // CHECK: TWO auto r3 = l2(); // CHECK: TWO // Verify non-local lambda capture error is correctly reported int x = 42; // expected-error {{non-local lambda expression cannot have a capture-default}} auto capture = [&]() { return x * 2; }; // Ensure interpreter continues and x is still valid printf("x = %d\n", x); // CHECK: x = 42 %quit