xref: /llvm-project/lldb/test/API/commands/expression/nested/main.cpp (revision e42edb5547618c172abe25914000bb61f5278c4c)
1*e42edb55SGreg Clayton namespace a {
2*e42edb55SGreg Clayton namespace b {
3*e42edb55SGreg Clayton namespace c {
4*e42edb55SGreg Clayton static int d = 12;
5*e42edb55SGreg Clayton enum Color { Red, Green, Blue };
6*e42edb55SGreg Clayton } // namespace c
7*e42edb55SGreg Clayton } // namespace b
8*e42edb55SGreg Clayton } // namespace a
9*e42edb55SGreg Clayton 
10*e42edb55SGreg Clayton struct A {
11*e42edb55SGreg Clayton   int _a = 'a';
12*e42edb55SGreg Clayton   struct B {
13*e42edb55SGreg Clayton     short _b = 'b';
14*e42edb55SGreg Clayton     struct C {
15*e42edb55SGreg Clayton       char _c = 'c';
16*e42edb55SGreg Clayton       enum EnumType : int { Eleven = 11 };
17*e42edb55SGreg Clayton       static EnumType enum_static;
18*e42edb55SGreg Clayton     };
19*e42edb55SGreg Clayton   };
20*e42edb55SGreg Clayton };
21*e42edb55SGreg Clayton 
22*e42edb55SGreg Clayton A::B::C::EnumType A::B::C::enum_static = A::B::C::Eleven;
23*e42edb55SGreg Clayton 
foo()24*e42edb55SGreg Clayton int foo() {
25*e42edb55SGreg Clayton   a::b::c::Color color = a::b::c::Blue;
26*e42edb55SGreg Clayton   return A::B::C::enum_static == a::b::c::d && ((int)color == 0);
27*e42edb55SGreg Clayton }
28*e42edb55SGreg Clayton 
main()29*e42edb55SGreg Clayton int main() {
30*e42edb55SGreg Clayton   return foo(); // Stop here to evaluate expressions
31*e42edb55SGreg Clayton }
32