/* RUN: %clang_cc1 -std=c89 -ast-dump -o - %s | FileCheck %s RUN: %clang_cc1 -std=c99 -ast-dump -o - %s | FileCheck %s RUN: %clang_cc1 -std=c11 -ast-dump -o - %s | FileCheck %s RUN: %clang_cc1 -std=c17 -ast-dump -o - %s | FileCheck %s RUN: %clang_cc1 -std=c2x -ast-dump -o - %s | FileCheck %s */ /* WG14 DR253: yes * "overriding" in designated initializers */ struct fred { char s [6]; int n; }; struct fred y [] = { { { "abc" }, 1 }, [0] = { .s[0] = 'q' } }; /* Ensure that y[0] is initialized as if by the initializer { 'q' }. */ // CHECK: VarDecl 0x{{.*}} col:13 y 'struct fred[1]' cinit // CHECK-NEXT: InitListExpr 0x{{.*}} 'struct fred[1]' // CHECK-NEXT: InitListExpr 0x{{.*}} 'struct fred' // CHECK-NEXT: InitListExpr 0x{{.*}} 'char[6]' // CHECK-NEXT: array_filler // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: CharacterLiteral 0x{{.*}} 'int' 113 // CHECK-NEXT: ImplicitValueInitExpr 0x{{.*}} <> 'int'