Mercurial > hg > CbC > CbC_llvm
view clang/test/Sema/missing-field-initializers.c @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children |
line wrap: on
line source
// RUN: %clang_cc1 -fsyntax-only -verify -Wmissing-field-initializers %s // This was PR4808. struct Foo { int a, b; }; struct Foo foo0 = { 1 }; // expected-warning {{missing field 'b' initializer}} struct Foo foo1 = { .a = 1 }; // designator avoids MFI warning struct Foo foo2 = { .b = 1 }; // designator avoids MFI warning struct Foo bar0[] = { { 1,2 }, { 1 }, // expected-warning {{missing field 'b' initializer}} { 1,2 } }; struct Foo bar1[] = { 1, 2, 1, 2, 1 }; // expected-warning {{missing field 'b' initializer}} struct Foo bar2[] = { {}, {}, {} }; struct One { int a; int b; }; struct Two { float c; float d; float e; }; struct Three { union { struct One one; struct Two two; } both; }; struct Three t0 = { { .one = { 1, 2 } } }; struct Three t1 = { { .two = { 1.0f, 2.0f, 3.0f } } }; struct Three data[] = { { { .one = { 1, 2 } } }, { { .one = { 1 } } }, // expected-warning {{missing field 'b' initializer}} { { .two = { 1.0f, 2.0f, 3.0f } } }, { { .two = { 1.0f, 2.0f } } } // expected-warning {{missing field 'e' initializer}} }; struct { int:5; int a; int:5; int b; int:5; } noNamedImplicit[] = { { 1, 2 }, { 1 } // expected-warning {{missing field 'b' initializer}} };