[docs] Add LICENSE.txt to the root of the mono-repo
[llvm-project.git] / clang / test / Index / evaluate-cursor.cpp
blob901e988bc99e55fb78e8826fdef736138cab187b
1 // Test is line- and column-sensitive. Run lines are below.
3 struct Foo {
4 int x = 10;
5 };
7 void foo() {
8 int p = 11;
11 #define FUNC_MAC(x) x
13 void goo() {
14 int p = FUNC_MAC(1);
15 int a = __LINE__;
18 unsigned long long foo_int = 1ull << 60;
20 unsigned long long HUGE = 1ull << 63;
22 long long HUGE_NEG = -(1ll << 35);
24 template <typename d> class e {
25 using f = d;
26 static const auto g = alignof(f);
29 constexpr static int calc_val() { return 1 + 2; }
30 const auto the_value = calc_val() + sizeof(char);
32 void vlaTest() {
33 int msize = 4;
34 float arr[msize];
35 [&arr] {};
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
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]
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
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
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
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