Mercurial > hg > CbC > CbC_llvm
view clang/test/Sema/warn-uninitialized-statement-expression.c @ 222:81f6424ef0e3 llvm-original
LLVM original branch
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 18 Jul 2021 22:10:01 +0900 |
parents | 1d019706d866 |
children |
line wrap: on
line source
// RUN: %clang_cc1 -fsyntax-only -Wuninitialized -verify %s void init(int *); void foo(void) { int i = ({ init(&i); i; }); } void foo_bad(void) { int i = ({ int z = i; // expected-warning{{variable 'i' is uninitialized when used within its own initialization}} init(&i); i; }); } struct widget { int x, y; }; void init2(struct widget *); void bar(void) { struct widget my_widget = ({ init2(&my_widget); my_widget; }); struct widget a = (init2(&a), a); } void bar_bad(void) { struct widget my_widget = ({ struct widget z = my_widget; // expected-warning{{variable 'my_widget' is uninitialized when used within its own initialization}} int x = my_widget.x; //FIXME: There should be an uninitialized warning here init2(&my_widget); my_widget; }); } void baz(void) { struct widget a = ({ struct widget b = ({ b = a; // expected-warning{{variable 'a' is uninitialized when used within its own initialization}} }); a; }); } void f(void) { struct widget *a = ({ init2(a); // expected-warning{{variable 'a' is uninitialized when used within its own initialization}} a; }); }