| // RUN: %clang_cc1 -analyze -analyzer-checker=core,debug.ExprInspection %s -verify | |
| void clang_analyzer_eval(int); | |
| namespace EnumsViaMemberExpr { | |
| struct Foo { | |
| enum E { | |
| Bar = 1 | |
| }; | |
| }; | |
| void testEnumVal(Foo Baz) { | |
| clang_analyzer_eval(Baz.Bar == Foo::Bar); // expected-warning{{TRUE}} | |
| } | |
| void testEnumRef(Foo &Baz) { | |
| clang_analyzer_eval(Baz.Bar == Foo::Bar); // expected-warning{{TRUE}} | |
| } | |
| void testEnumPtr(Foo *Baz) { | |
| clang_analyzer_eval(Baz->Bar == Foo::Bar); // expected-warning{{TRUE}} | |
| } | |
| } |