xref: /llvm-project/lldb/test/API/commands/frame/var/direct-ivar/objcpp/main.mm (revision 75fdf7fd1516090651c0c3ffba4869cba9f3a879)
1*75fdf7fdSDave Lee#import <objc/NSObject.h>
2*75fdf7fdSDave Lee#include <stdio.h>
3*75fdf7fdSDave Lee
4*75fdf7fdSDave Leestruct Structure {
5*75fdf7fdSDave Lee  int m_field;
6*75fdf7fdSDave Lee  void fun() {
7*75fdf7fdSDave Lee    puts("check this\n");
8*75fdf7fdSDave Lee  }
9*75fdf7fdSDave Lee};
10*75fdf7fdSDave Lee
11*75fdf7fdSDave Lee@interface Classic : NSObject {
12*75fdf7fdSDave Lee@public
13*75fdf7fdSDave Lee  int _ivar;
14*75fdf7fdSDave Lee}
15*75fdf7fdSDave Lee@end
16*75fdf7fdSDave Lee
17*75fdf7fdSDave Lee@implementation Classic
18*75fdf7fdSDave Lee- (void)fun {
19*75fdf7fdSDave Lee  puts("check self\n");
20*75fdf7fdSDave Lee}
21*75fdf7fdSDave Lee@end
22*75fdf7fdSDave Lee
23*75fdf7fdSDave Leeint main() {
24*75fdf7fdSDave Lee  Structure s;
25*75fdf7fdSDave Lee  s.m_field = 41;
26*75fdf7fdSDave Lee  s.fun();
27*75fdf7fdSDave Lee
28*75fdf7fdSDave Lee  Classic *c = [Classic new];
29*75fdf7fdSDave Lee  c->_ivar = 30;
30*75fdf7fdSDave Lee  [c fun];
31*75fdf7fdSDave Lee
32*75fdf7fdSDave Lee  Classic *self = c;
33*75fdf7fdSDave Lee  puts("check explicit self\n");
34*75fdf7fdSDave Lee  (void)self;
35*75fdf7fdSDave Lee}
36