1#include <memory>
2
3struct NodeS;
4
5// Class to wrap pointers.
6class wrap_ptr {
7public:
8 NodeS *ptr;
9
10 wrap_ptr(NodeS *n_ptr) : ptr(n_ptr) {}
11};
12
13struct NodeS {
14 wrap_ptr next;
15 int value;
16
17 NodeS(NodeS *n_ptr, int val) : next(wrap_ptr(n_ptr)), value(val) {}
18};
19
20int main(int argc, char **argv) {
21
22 // Make a short linked list of fake smart pointers.
23 auto ptr_node = wrap_ptr(new NodeS(new NodeS(nullptr, 2), 1));
24
25 return 0; // Set a breakpoint here
26}
27

source code of lldb/test/API/commands/frame/var-dil/basics/SyntheticDereference/main.cpp