member-expr.cpp revision 603513d2294c437b37bcf47f326b686e31bd9e84
1// RUN: %clang_cc1 -analyze -analyzer-checker=core,debug.ExprInspection %s -verify
2
3void clang_analyzer_eval(int);
4
5namespace 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}