75 lines · cpp
1// RUN: clang-repl "int i = 10;" 'extern "C" int printf(const char*,...);' \2// RUN: 'auto r1 = printf("i = %d\n", i);' | FileCheck --check-prefix=CHECK-DRIVER %s3// The test is flaky with asan https://github.com/llvm/llvm-project/pull/148701.4// UNSUPPORTED: asan5// CHECK-DRIVER: i = 106// RUN: cat %s | clang-repl -Xcc -std=c++11 -Xcc -fno-delayed-template-parsing | FileCheck %s7extern "C" int printf(const char*,...);8 9"ab"10// CHECK: (const char[3]) "ab"11 1212345613// CHECK-NEXT: (int) 12345614 15char ch[2] = {'1','a'}; ch16// CHECK-NEXT: (char[2]) { '1', 'a' }17 18char chnull[3] = {'1','a', '\0'}; chnull19// CHECK-NEXT: (char[3]) "1a"20 21char ch_arr[2][3][1] = {{{'a'}, {'b'}, {'c'}}, {{'d'}, {'e'}, {'f'}}}; ch_arr22// CHECK: (char[2][3][1]) { { { 'a' }, { 'b' }, { 'c' } }, { { 'd' }, { 'e' }, { 'f' } } }23struct S3 { int* p; S3() { p = new int(42); } ~S3() { delete p; } };24S3{}25// CHECK-NEXT: (S3) @0x{{[0-9a-f]+}}26S3 s3;27s328// CHECK-NEXT: (S3 &) @0x{{[0-9a-f]+}}29 30struct S4 { ~S4() { printf("~S4()\n"); }};31S4{}32// CHECK-NEXT: (S4) @0x{{[0-9a-f]+}}33// TODO-CHECK-NEXT: ~S4()34 35enum Enum{ e1 = -12, e2, e3=33, e4, e5 = 33};36e237// CHECK-NEXT: (Enum) (e2) : int -1138::e139// CHECK-NEXT: (Enum) (e1) : int -1240 41enum class Color { R = 0, G, B };42Color::R43// CHECK-NEXT: (Color) (Color::R) : int 044 45 46// Lambdas.47 48auto Lambda1 = []{};49Lambda150// CHECK-NEXT: ((lambda) &) @0x{{[0-9a-f]+}}51[]{}52// CHECK-NEXT: ((lambda at input_line_{{[0-9]+}}:1:1)) @0x{{[0-9a-f]+}}53 54template<int n> struct F{ enum {RET=F<n-1>::RET*n} ; };55template<> struct F<0> { enum {RET = 1}; };56F<7>::RET57// CHECK-NEXT: (F<7>::(unnamed enum at input_line_{{[0-9]+}}:1:27)) (F<7>::RET) : unsigned int 504058 59struct S5 { int foo() { return 42; }};60&S5::foo61// CHECK-NEXT: (int (S5::*)()) Function @0x{{[0-9a-f]+}}62 63// int i = 12;64// int &iref = i;65// iref66// // TODO-CHECK-NEXT: (int &) 1267 68// int &&rref = 100;69// rref70 71// // TODO-CHECK-NEXT: (int &&) 10072 73%quit74 75