Home | History | Annotate | Download | only in Analysis
      1 // RUN: %clang_cc1 -analyze -analyzer-checker=core,debug.ExprInspection %s -verify
      2 
      3 void clang_analyzer_eval(int);
      4 
      5 namespace EnumsViaMemberExpr {
      6   struct Foo {
      7     enum E {
      8       Bar = 1
      9     };
     10   };
     11 
     12   void testEnumVal(Foo Baz) {
     13     clang_analyzer_eval(Baz.Bar == Foo::Bar); // expected-warning{{TRUE}}
     14   }
     15 
     16   void testEnumRef(Foo &Baz) {
     17     clang_analyzer_eval(Baz.Bar == Foo::Bar); // expected-warning{{TRUE}}
     18   }
     19 
     20   void testEnumPtr(Foo *Baz) {
     21     clang_analyzer_eval(Baz->Bar == Foo::Bar); // expected-warning{{TRUE}}
     22   }
     23 }