1#import <Foundation/Foundation.h>
2#include <TargetConditionals.h>
3
4#if TARGET_OS_IPHONE
5@import CoreGraphics;
6typedef CGRect NSRect;
7#endif
8
9struct things_to_sum {
10 int a;
11 int b;
12 int c;
13};
14
15@interface ThingSummer : NSObject {
16};
17-(int)sumThings:(struct things_to_sum)tts;
18@end
19
20@implementation ThingSummer
21-(int)sumThings:(struct things_to_sum)tts
22{
23 return tts.a + tts.b + tts.c;
24}
25@end
26
27int main()
28{
29 @autoreleasepool
30 {
31 ThingSummer *summer = [ThingSummer alloc];
32 struct things_to_sum tts = { 2, 3, 4 };
33 int ret = [summer sumThings:tts];
34 NSRect rect = {{0, 0}, {10, 20}};
35 // The Objective-C V1 runtime won't read types from metadata so we need
36 // NSValue in our debug info to use it in our test.
37 NSValue *v = [NSValue valueWithRect:rect];
38 return rect.origin.x; // Set breakpoint here.
39 }
40}
41

source code of lldb/test/API/lang/objc/objc-struct-argument/test.m