xref: /llvm-project/clang/test/Analysis/aggrinit-cfg-output.cpp (revision ea93d7d6421612e9ea51b321eaf97fbdd64fe39b)
1*ea93d7d6SGabor Horvath // RUN: %clang_cc1 -analyze -analyzer-checker=debug.DumpCFG -analyzer-config cfg-expand-default-aggr-inits=true %s > %t 2>&1
2*ea93d7d6SGabor Horvath // RUN: FileCheck --input-file=%t %s
3*ea93d7d6SGabor Horvath 
4*ea93d7d6SGabor Horvath static char a[] = "foobar";
5*ea93d7d6SGabor Horvath 
6*ea93d7d6SGabor Horvath struct StringRef {
7*ea93d7d6SGabor Horvath   const char *member = nullptr;
8*ea93d7d6SGabor Horvath   int len = 3;
9*ea93d7d6SGabor Horvath };
10*ea93d7d6SGabor Horvath 
main()11*ea93d7d6SGabor Horvath int main() {
12*ea93d7d6SGabor Horvath   StringRef s{a};
13*ea93d7d6SGabor Horvath   (void)s;
14*ea93d7d6SGabor Horvath }
15*ea93d7d6SGabor Horvath 
16*ea93d7d6SGabor Horvath // CHECK: [B1]
17*ea93d7d6SGabor Horvath // CHECK-NEXT:   1: a
18*ea93d7d6SGabor Horvath // CHECK-NEXT:   2: [B1.1] (ImplicitCastExpr, ArrayToPointerDecay, char *)
19*ea93d7d6SGabor Horvath // CHECK-NEXT:   3: [B1.2] (ImplicitCastExpr, NoOp, const char *)
20*ea93d7d6SGabor Horvath // CHECK-NEXT:   4: 3
21*ea93d7d6SGabor Horvath // CHECK-NEXT:   5:
22*ea93d7d6SGabor Horvath // CHECK-NEXT:   6: {[B1.1]}
23*ea93d7d6SGabor Horvath // CHECK-NEXT:   7: StringRef s{a};
24*ea93d7d6SGabor Horvath // CHECK-NEXT:   8: s
25*ea93d7d6SGabor Horvath // CHECK-NEXT:   9: (void)[B1.8] (CStyleCastExpr, ToVoid, void)
26*ea93d7d6SGabor Horvath // CHECK-NEXT:   Preds (1): B2
27*ea93d7d6SGabor Horvath // CHECK-NEXT:   Succs (1): B0
28*ea93d7d6SGabor Horvath 
29