// RUN: %clang_analyze_cc1 -analyzer-checker=core.builtin -verify -DCHECK_FOR_CRASH %s
// RUN: %clang_analyze_cc1 -analyzer-checker=core -verify -analyzer-output=text %s
#ifdef CHECK_FOR_CRASH
// expected-no-diagnostics
#endifnamespacePerformTrivialCopyForUndefs{structA{int x;};structB{A a;};structC{B b;};voidfoo(){
C c1;
C *c2;#ifdef CHECK_FOR_CRASH
// If the value of variable is not defined and checkers that check undefined
// values are not enabled, performTrivialCopy should be able to handle the
// case with undefined values, too.
c1.b.a= c2->b.a;#else c1.b.a= c2->b.a;// expected-warning{{1st function call argument is an uninitialized value}}
// expected-note@-1{{1st function call argument is an uninitialized value}}
#endif}}