For the Objective-C case, we do not have a "function type" notion, so we actually end up wrapping the clang ObjCMethodDecl in the Impl object, and ask function-y questions of it In general, you can always ask for return type, number of arguments, and type of each argument using the TypeMemberFunction layer - but in the C++ case, you can also acquire a Type object for the function itself, which instead you can't do in the Objective-C case llvm-svn: 218132
48 lines
1.0 KiB
C++
48 lines
1.0 KiB
C++
//===-- main.cpp ------------------------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#import <Foundation/Foundation.h>
|
|
|
|
class Base {
|
|
public:
|
|
int foo(int x, int y) { return 1; }
|
|
char bar(int x, char y) { return 2; }
|
|
void dat() {}
|
|
static int sfunc(char, int, float) { return 3; }
|
|
};
|
|
|
|
class Derived: public Base {
|
|
protected:
|
|
int dImpl() { return 1; }
|
|
public:
|
|
float baz(float b) { return b + 1.0; }
|
|
};
|
|
|
|
@interface Thingy: NSObject {
|
|
}
|
|
- (id)init;
|
|
- (id)fooWithBar: (int)bar andBaz:(id)baz;
|
|
@end
|
|
|
|
@implementation Thingy {
|
|
}
|
|
- (id)init {
|
|
return (self = [super init]);
|
|
}
|
|
- (id)fooWithBar: (int)bar andBaz:(id)baz {
|
|
return nil;
|
|
}
|
|
@end
|
|
|
|
int main() {
|
|
Derived d;
|
|
Thingy *thingy = [[Thingy alloc] init];
|
|
return 0; // set breakpoint here
|
|
}
|