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 Horvathint 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