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 }