// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection \ // RUN: -verify %s #define nil ((id)0) void clang_analyzer_eval(int); struct S { int x; S(); }; @interface I @property S s; @end void foo() { // This produces a zero-initialized structure. // FIXME: This very fact does deserve the warning, because zero-initialized // structures aren't always valid in C++. It's particularly bad when the // object has a vtable. S s = ((I *)nil).s; clang_analyzer_eval(s.x == 0); // expected-warning{{TRUE}} }