blob: 1cd91582b970f93ae004482e2852cd49c0fd089e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
// RUN: %check_clang_tidy -check-suffix=0-0 %s modernize-use-auto %t -- -config="{CheckOptions: [{key: modernize-use-auto.RemoveStars, value: 0}, {key: modernize-use-auto.MinTypeNameLength, value: 0}]}" -- --std=c++11 -frtti
// RUN: %check_clang_tidy -check-suffix=0-8 %s modernize-use-auto %t -- -config="{CheckOptions: [{key: modernize-use-auto.RemoveStars, value: 0}, {key: modernize-use-auto.MinTypeNameLength, value: 8}]}" -- --std=c++11 -frtti
// RUN: %check_clang_tidy -check-suffix=1-0 %s modernize-use-auto %t -- -config="{CheckOptions: [{key: modernize-use-auto.RemoveStars, value: 1}, {key: modernize-use-auto.MinTypeNameLength, value: 0}]}" -- --std=c++11 -frtti
// RUN: %check_clang_tidy -check-suffix=1-8 %s modernize-use-auto %t -- -config="{CheckOptions: [{key: modernize-use-auto.RemoveStars, value: 1}, {key: modernize-use-auto.MinTypeNameLength, value: 8}]}" -- --std=c++11 -frtti
template <class T> extern T foo();
template <class T> struct P { explicit P(T t) : t_(t) {} T t_;};
template <class T> P<T> *foo_ptr();
template <class T> P<T> &foo_ref();
int bar() {
{
// Lenth(long) = 4
long i = static_cast<long>(foo<long>());
// CHECK-FIXES-0-0: auto i = {{.*}}
// CHECK-FIXES-0-8: long i = {{.*}}
// CHECK-FIXES-1-0: auto i = {{.*}}
// CHECK-FIXES-1-8: long i = {{.*}}
const long ci = static_cast<long>(foo<const long>());
// CHECK-FIXES-0-0: auto ci = {{.*}}
// CHECK-FIXES-0-8: long ci = {{.*}}
// CHECK-FIXES-1-0: auto ci = {{.*}}
// CHECK-FIXES-1-8: long ci = {{.*}}
long *pi = static_cast<long *>(foo<long *>());
// CHECK-FIXES-0-0: auto *pi = {{.*}}
// CHECK-FIXES-0-8: long *pi = {{.*}}
// CHECK-FIXES-1-0: auto pi = {{.*}}
// CHECK-FIXES-1-8: long *pi = {{.*}}
// Length(long *) is still 5
long * pi2 = static_cast<long *>(foo<long *>());
// CHECK-FIXES-0-0: auto * pi2 = {{.*}}
// CHECK-FIXES-0-8: long * pi2 = {{.*}}
// CHECK-FIXES-1-0: auto pi2 = {{.*}}
// CHECK-FIXES-1-8: long * pi2 = {{.*}}
// Length(long **) = 6
long **ppi = static_cast<long **>(foo<long **>());
// CHECK-FIXES-0-0: auto **ppi = {{.*}}
// CHECK-FIXES-0-8: long **ppi = {{.*}}
// CHECK-FIXES-1-0: auto ppi = {{.*}}
// CHECK-FIXES-1-8: long **ppi = {{.*}}
}
{
// Lenth(long int) = 4 + 1 + 3 = 8
// Lenth(long int) is still 8
long int i = static_cast<long int>(foo<long int>());
// CHECK-FIXES-0-0: auto i = {{.*}}
// CHECK-FIXES-0-8: auto i = {{.*}}
// CHECK-FIXES-1-0: auto i = {{.*}}
// CHECK-FIXES-1-8: auto i = {{.*}}
long int *pi = static_cast<long int *>(foo<long int *>());
// CHECK-FIXES-0-0: auto *pi = {{.*}}
// CHECK-FIXES-0-8: auto *pi = {{.*}}
// CHECK-FIXES-1-0: auto pi = {{.*}}
// CHECK-FIXES-1-8: auto pi = {{.*}}
}
// Templates
{
// Length(P<long>) = 7
P<long>& i = static_cast<P<long>&>(foo_ref<long>());
// CHECK-FIXES-0-0: auto& i = {{.*}}
// CHECK-FIXES-0-8: P<long>& i = {{.*}}
// CHECK-FIXES-1-0: auto & i = {{.*}}
// CHECK-FIXES-1-8: P<long>& i = {{.*}}
// Length(P<long*>) = 8
P<long*>& pi = static_cast<P<long*> &>(foo_ref<long*>());
// CHECK-FIXES-0-0: auto& pi = {{.*}}
// CHECK-FIXES-0-8: auto& pi = {{.*}}
// CHECK-FIXES-1-0: auto & pi = {{.*}}
// CHECK-FIXES-1-8: auto & pi = {{.*}}
P<long>* pi2 = static_cast<P<long>*>(foo_ptr<long>());
// CHECK-FIXES-0-0: auto* pi2 = {{.*}}
// CHECK-FIXES-0-8: P<long>* pi2 = {{.*}}
// CHECK-FIXES-1-0: auto pi2 = {{.*}}
// CHECK-FIXES-1-8: auto pi2 = {{.*}}
}
return 1;
}
|