1//===-- main.cpp ------------------------------------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#import <Foundation/Foundation.h>
10
11class Base {
12public:
13    int foo(int x, int y) { return 1; }
14    char bar(int x, char y) { return 2; }
15    void dat() {}
16    static int sfunc(char, int, float) { return 3; }
17};
18
19class Derived: public Base {
20protected:
21    int dImpl() { return 1; }
22public:
23    float baz(float b) { return b + 1.0; }
24};
25
26@interface Thingy: NSObject {
27}
28- (id)init;
29- (id)fooWithBar: (int)bar andBaz:(id)baz;
30@end
31
32@implementation Thingy {
33}
34- (id)init {
35    return (self = [super init]);
36}
37- (id)fooWithBar: (int)bar andBaz:(id)baz {
38    return nil;
39}
40@end
41
42int main() {
43    Derived d;
44    Thingy *thingy = [[Thingy alloc] init];
45    return 0; // set breakpoint here
46}
47