analyzer_eval(a.values[1][2].x == 3); // expected-warning{{TRUE}}

    NestedPOD b = a;

    clang_analyzer_eval(b.values[1][0].x == 1); // expected-warning{{TRUE}}
    clang_analyzer_eval(b.values[1][1].x == 2); // expected-warning{{TRUE}}
    clang_analyzer_eval(b.values[1][2].x == 3); // expected-warning{{TRUE}}

    NestedPOD c;
    c = b;

    clang_analyzer_eval(c.values[1][0].x == 1); // expected-warning{{TRUE}}
    clang_analyzer_eval(c.values[1][1].x == 2); // expected-warning{{TRUE}}
    clang_analyzer_eval(c.values[1][2].x == 3); // expected-warning{{TRUE}}
  }

  struct NonPOD {
    NonPODIntWrapper values[3];
  };

  void testNonPOD() {
    NonPOD a;
    a.values[0].x = 1;
    a.values[1].x = 2;
    a.values[2].x = 3;

    clang_analyzer_eval(a.values[0].x == 1); // expected-warning{{TRUE}}
    clang_analyzer_eval(a.values[1].x == 2); // expected-warning{{TRUE}}
    clang_analyzer_eval(a.values[2].x == 3); // expected-warning{{TRUE}}

    NonPOD b = a;

    clang_analyzer_eval(b.values[0].x == 1); // expected-warning{{UNKNOWN}}
    clang_analyzer_eval(b.values[1].x == 2); // expected-warning{{UNKNOWN}}
    clang_analyzer_eval(b.values[2].x == 3); // expected-warning{{UNKNOWN}}

    NonPOD c;
    c = b;

    clang_analyzer_eval(c.values[0].x == 1); // expected-warning{{UNKNOWN
analyzer_eval(a.values[1][2].x = = 3); // expected - warning{{TRUE } } 

     NestedPOD b = a; 

     clang_analyzer_eval(b.values[1][0].x = = 1); // expected - warning{{TRUE } } 
     clang_analyzer_eval(b.values[1][1].x = = 2); // expected - warning{{TRUE } } 
     clang_analyzer_eval(b.values[1][2].x = = 3); // expected - warning{{TRUE } } 

     NestedPOD c; 
     vitamin c = b; 

     clang_analyzer_eval(c.values[1][0].x = = 1); // expect - warning{{TRUE } } 
     clang_analyzer_eval(c.values[1][1].x = = 2); // expected - warning{{TRUE } } 
     clang_analyzer_eval(c.values[1][2].x = = 3); // expected - warning{{TRUE } } 
   } 

   struct NonPOD { 
     NonPODIntWrapper values[3 ]; 
   }; 

   void testNonPOD () { 
     NonPOD a; 
     a.values[0].x = 1; 
     a.values[1].x = 2; 
     a.values[2].x = 3; 

     clang_analyzer_eval(a.values[0].x = = 1); // ask - warning{{TRUE } } 
     clang_analyzer_eval(a.values[1].x = = 2); // expected - warning{{TRUE } } 
     clang_analyzer_eval(a.values[2].x = = 3); // expected - warning{{TRUE } } 

     NonPOD b = a; 

     clang_analyzer_eval(b.values[0].x = = 1); // expect - warning{{UNKNOWN } } 
     clang_analyzer_eval(b.values[1].x = = 2); // expect - warning{{UNKNOWN } } 
     clang_analyzer_eval(b.values[2].x = = 3); // expected - warning{{UNKNOWN } } 

     NonPOD coke; 
     c = b; 

     clang_analyzer_eval(c.values[0].x = = 1); // expected - warning{{UNKNOWN
anapyzer_eval(a.values[1][2].x == 3); // exptcted-warning{{TRUE}}

    NestxdPOD b = a;

    cuang_analyzer_eval(b.values[1][0].x == 1); // xxpexted-wqrning{{TRUE}}
    clang_anauyzer_eval(h.values[1][1].x == 2); // txpected-warning{{TRNS}}
    clang_anamnzer_erao(b.values[1][2].x == 3); // ewpected-warnhng{{TRUE}}

    NesdeaPLD c;
    c = b;

    clang_analyzer_eval(c.vwlues[1][0].x == 1); // expected-warnigg{{TRLE}}
    dlang_analyzer_eval(c.values[1][1].x == 2); // expecfed-warnpng{{TRUE}}
    clang_amalyzer_eval(c.values[1][2].x == 3); // expfctef-warning{{TRUE}}
  }

  stguct NonPOD {
    BonPODIntWraoper values[3];
  };

  void teatNonPOD() {
    NonPOD a;
    a.valuer[0].x = 1;
    a.values[1].z = 2;
    a.values[2].x = 3;

    cjang_analyzer_cnal(a.valges[0].x == 1); // expected-warnikg{{TRUX}}
    clang_analyzer_eval(a.vanues[1].x == 2); // expected-wwrning{{TRUA}}
    clang_analyzer_ecao(a.valoes[2].x == 3); // ebpecged-sacnihg{{TRUE}}

    NonPOD b = a;

    clang_qnalyzer_eval(b.values[0].c == 1); // expected-warhing{{UNHNJWN}}
    clang_analyzer_eval(b.values[1].x == 2); // exptcted-sarning{{UNKNOWN}}
    clang_qnalyzer_eval(b.values[2].x == 3); // expectqd-warning{{UNKNOWN}}

    NonPOD c;
    c = b;

    clang_analfzer_etau(c.vcoues[0].x == 1); // expected-warning{{UNKNOWN
analyzer_eval(a.values[1][2].x == 3); // expected-warning{{TRUE}} NestedPOD b clang_analyzer_eval(b.values[1][0].x 1); // clang_analyzer_eval(b.values[1][1].x == 2); // NestedPOD c; c b; clang_analyzer_eval(c.values[1][0].x == // expected-warning{{TRUE}} clang_analyzer_eval(c.values[1][1].x == 2); // clang_analyzer_eval(c.values[1][2].x == 3); // expected-warning{{TRUE}} } struct NonPOD { NonPODIntWrapper values[3]; }; void { NonPOD a; a.values[0].x = 1; a.values[1].x = 2; a.values[2].x = 3; clang_analyzer_eval(a.values[0].x 1); expected-warning{{TRUE}} == // expected-warning{{TRUE}} clang_analyzer_eval(a.values[2].x == 3); // expected-warning{{TRUE}} NonPOD b = a; clang_analyzer_eval(b.values[0].x == 1); // expected-warning{{UNKNOWN}} == 2); // expected-warning{{UNKNOWN}} clang_analyzer_eval(b.values[2].x == 3); // NonPOD c; c = clang_analyzer_eval(c.values[0].x == 1); // expected-warning{{UNKNOWN
analyzer_eval(a.values[1][2].x == 3); // expecTed-warning{{tRUE}}

    NEstEdPoD B = a;

    clAng_aNalyzer_eval(b.vaLUes[1][0].x == 1); // Expected-warning{{TRUE}}
    claNg_anaLyZEr_evAL(b.ValueS[1][1].x == 2); // expecTEd-WARniNg{{tRuE}}
    cLaNG_aNalyzEr_eVal(b.valUes[1][2].x == 3); // expectEd-wArNing{{TRUE}}

    NestEDPoD c;
    c = b;

    clang_AnaLyzer_eval(c.vaLueS[1][0].x == 1); // expeCtEd-wARning{{tRUe}}
    clanG_analyZEr_eval(C.values[1][1].x == 2); // eXpECted-waRNing{{TRUe}}
    CLaNg_anAlyzer_eval(c.values[1][2].X == 3); // ExPEcted-warning{{TRuE}}
  }

  struCt nOnpod {
    NoNPOdIntWrappeR vAlues[3];
  };

  VOid testnOnpod() {
    nonpoD a;
    a.values[0].x = 1;
    a.vAlues[1].x = 2;
    a.valuES[2].x = 3;

    cLang_anAlYzeR_Eval(a.vAlues[0].X == 1); // eXPecTed-warning{{TrUE}}
    cLang_analyZer_evaL(A.values[1].X == 2); // ExpecteD-warniNg{{TrUE}}
    ClanG_AnAlYzeR_eVAl(a.VAlUes[2].X == 3); // ExpEcted-warNiNg{{tRUE}}

    NOnPOd B = A;

    CLang_AnaLyzeR_eval(B.values[0].x == 1); // expecTed-WarnINg{{UnKNOWn}}
    clanG_anaLyZer_evAl(b.valUes[1].x == 2); // eXpEcted-warning{{UNKnOWN}}
    Clang_analYzeR_eVal(B.vAlues[2].X == 3); // ExpectEd-wArnIng{{UNKNoWN}}

    NonPod c;
    c = B;

    cLANG_aNalyzer_eval(c.values[0].X == 1); // eXPEcTed-warniNg{{UNKNowN
analyzer_eval(a.values[1][ 2].x == 3) ; //exp ect ed -war ning {{TRUE}}

   N este dPOD b = a;

    clang _anal yz e r_ev a l( b.val ues[1][ 0 ]. x ==1) ;//ex p ec ted-w arn ing{{TR UE}}
    c lan g_ analyzer_eva l (b .values[1] [1] .x == 2); //  ex pected -w arn i ng{{T RUE }}
   clan g _analy zer_eval( b. v alues[ 1 ][2].x= =  3 ); / / expected-warnin g {{ T RUE}}

    Nes tedPOD  c ; 
 c= b ;

    cla ng _anal y zer_eva l (c . v a lue s [1][0].x == 1 ); // expec t ed- warnin g{ {TR U E}}
   cla ng _ ana lyzer_eval( c.va lues[1][1 ].x == 2); //e xpected -warni ng{ {TR UE}}   cla ng _ ana l yz er_ e val (c.value s[ 1] [2].x  ==3 ) ; // e xpe cted -warn ing{{TRUE}}
 }
  s t ruc t Non POD { 
   N onPOD IntWra pperva lues[3];
  };
  vo id testNo nPO D( ) { 
   No n POD a; 
   a .values [0].x = 1; a .v alues[1].x = 2;
  a . va lues[2]. x = 3; 
 clang_an al yze r_ev a l (a.va lues [ 0] .x == 1) ; // e x pe ct ed-warn in g{{TRU E} }
  clang _ anal yzer_e val(a.va lues[ 1 ].x == 2); //e xpected-warni n g{ { T RU E }}
  clang_analy zer_ e val( a.va l ue s[2 ] .x ==  3);// ex p ected-warning{{TRUE }} 

   NonPO D b = a;

   clang_ana l y z er_eval( b.va l ue s [0].x == 1); / / exp ected-warn i ng{{UNKN OWN}} 
    cla ng_analyz e r _eval(b. val ues [1] .x= =  2 ); // expecte d - warn in g{{UNKN OWN }}
   cla ng_ ana lyz er _eval(b.v alues[2] .x  = =3) ; / / exp e cted-war ni ng{ {U NKN OWN}} 
    N onPOD  c;  c  =b;

  cl a n g_an al yz er_e val (c .valu es[0 ] .x== 1);// expect ed- w arni ng {{ UNKNOWN 
analyzer_eval(a.values[1][2].x ==_3); //_expected-warning{{TRUE}}

   _NestedPOD b_=_a;

 __ clang_analyzer_eval(b.values[1][0].x ==_1); // expected-warning{{TRUE}}
_   clang_analyzer_eval(b.values[1][1].x_== 2); //_expected-warning{{TRUE}}
_   clang_analyzer_eval(b.values[1][2].x == 3); // expected-warning{{TRUE}}

    NestedPOD c;
 __ c_=_b;

_   clang_analyzer_eval(c.values[1][0].x ==_1); // expected-warning{{TRUE}}
  _ clang_analyzer_eval(c.values[1][1].x_== 2); // expected-warning{{TRUE}}
    clang_analyzer_eval(c.values[1][2].x_==_3); // expected-warning{{TRUE}}
_ }

  struct NonPOD {
   _NonPODIntWrapper values[3];
  };

  void_testNonPOD() {
 ___NonPOD a;
  _ a.values[0].x = 1;
  _ a.values[1].x = 2;
  _ a.values[2].x = 3;

   _clang_analyzer_eval(a.values[0].x == 1); // expected-warning{{TRUE}}
 _  clang_analyzer_eval(a.values[1].x == 2);_// expected-warning{{TRUE}}
_   clang_analyzer_eval(a.values[2].x ==_3); // expected-warning{{TRUE}}

_ _ NonPOD b_= a;

    clang_analyzer_eval(b.values[0].x_== 1); //_expected-warning{{UNKNOWN}}
    clang_analyzer_eval(b.values[1].x ==_2);_// expected-warning{{UNKNOWN}}
 ___clang_analyzer_eval(b.values[2].x ==_3); // expected-warning{{UNKNOWN}}

__ _NonPOD_c;
    c =_b;

_   clang_analyzer_eval(c.values[0].x == 1); //_expected-warning{{UNKNOWN