1 // Test is line- and column-sensitive. Run lines are below. 2 3 struct Foo { 4 int x = 10; 5 }; 6 7 void foo() { 8 int p = 11; 9 } 10 11 #define FUNC_MAC(x) x 12 13 void goo() { 14 int p = FUNC_MAC(1); 15 int a = __LINE__; 16 } 17 18 unsigned long long foo_int = 1ull << 60; 19 20 unsigned long long HUGE = 1ull << 63; 21 22 long long HUGE_NEG = -(1ll << 35); 23 24 template <typename d> class e { 25 using f = d; 26 static const auto g = alignof(f); 27 }; 28 29 constexpr static int calc_val() { return 1 + 2; } 30 const auto the_value = calc_val() + sizeof(char); 31 32 void vlaTest() { 33 int msize = 4; 34 float arr[msize]; 35 [&arr] {}; 36 } 37 38 // RUN: c-index-test -evaluate-cursor-at=%s:4:7 \ 39 // RUN: -evaluate-cursor-at=%s:8:7 \ 40 // RUN: -evaluate-cursor-at=%s:8:11 -std=c++11 %s | FileCheck %s 41 // CHECK: Value: 10 42 // CHECK: Value: 11 43 // CHECK: Value: 11 44 45 // RUN: c-index-test -get-macro-info-cursor-at=%s:11:9 \ 46 // RUN: -get-macro-info-cursor-at=%s:14:11 \ 47 // RUN: -get-macro-info-cursor-at=%s:15:11 -std=c++11 %s | FileCheck -check-prefix=CHECK-MACRO %s 48 // CHECK-MACRO: [function macro] 49 // CHECK-MACRO: [function macro] 50 // CHECK-MACRO: [builtin macro] 51 52 // RUN: c-index-test -evaluate-cursor-at=%s:18:20 \ 53 // RUN: -evaluate-cursor-at=%s:20:20 \ 54 // RUN: -evaluate-cursor-at=%s:22:11 \ 55 // RUN: -std=c++11 %s | FileCheck -check-prefix=CHECK-LONG %s 56 // CHECK-LONG: unsigned, Value: 1152921504606846976 57 // CHECK-LONG: unsigned, Value: 9223372036854775808 58 // CHECK-LONG: Value: -34359738368 59 60 // RUN: c-index-test -evaluate-cursor-at=%s:18:20 \ 61 // RUN: -evaluate-cursor-at=%s:20:20 \ 62 // RUN: -evaluate-cursor-at=%s:26:21 \ 63 // RUN: -std=c++11 %s | FileCheck -check-prefix=CHECK-DOES-NOT-CRASH %s 64 // CHECK-DOES-NOT-CRASH: Not Evaluatable 65 66 // RUN: c-index-test -evaluate-cursor-at=%s:30:1 \ 67 // RUN: -evaluate-cursor-at=%s:30:32 \ 68 // RUN: -evaluate-cursor-at=%s:30:35 \ 69 // RUN: -evaluate-cursor-at=%s:30:37 -std=c++11 %s | FileCheck %s -check-prefix=CHECK-EXPR 70 // CHECK-EXPR: unsigned, Value: 4 71 // CHECK-EXPR: Value: 3 72 // CHECK-EXPR: unsigned, Value: 4 73 // CHECK-EXPR: unsigned, Value: 1 74 75 // RUN: c-index-test -evaluate-cursor-at=%s:35:5 \ 76 // RUN: -std=c++11 %s | FileCheck -check-prefix=VLA %s 77 // VLA: Not Evaluatable 78