Skip to content

Nested class resolution works after second attempt #53904

@labath

Description

@labath
$ cat a.cc
struct A {
  struct B {
    struct C {
      struct D {
        struct E {
          static int f;
        };
      };
    };
  };
};

int A::B::C::D::E::f = 47;

int main() {
  return A::B::C::D::E::f;
}
$ clang++ a.cc -g
$ lldb a.out -o "b main" -o run
(lldb) target create "a.out"
Current executable set to 'a.out' (x86_64).
(lldb) b main
Breakpoint 1: where = a.out`main + 11 at a.cc:16:10, address = 0x000000000040110b
(lldb) run
Process 37237 stopped
* thread #1, name = 'a.out', stop reason = breakpoint 1.1
    frame #0: 0x000000000040110b a.out`main at a.cc:16:10
   13  	int A::B::C::D::E::f = 47;
   14  	
   15  	int main() {
-> 16  	  return A::B::C::D::E::f;
   17  	}
Process 37237 launched: '/tmp/x/a.out' (x86_64)
(lldb) p A::B::C::D::E::f
error: expression failed to parse:
error: <user expression 0>:1:4: no member named 'B' in 'A'
A::B::C::D::E::f
~~~^
(lldb) p A::B::C::D::E::f
error: expression failed to parse:
error: <user expression 1>:1:7: no member named 'C' in 'A::B'
A::B::C::D::E::f
~~~~~~^
(lldb) p A::B::C::D::E::f
error: expression failed to parse:
error: <user expression 2>:1:10: no member named 'D' in 'A::B::C'
A::B::C::D::E::f
~~~~~~~~~^
(lldb) p A::B::C::D::E::f
error: expression failed to parse:
error: <user expression 3>:1:13: no member named 'E' in 'A::B::C::D'
A::B::C::D::E::f
~~~~~~~~~~~~^
(lldb) p A::B::C::D::E::f
(int) $0 = 47

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions