StmtPrinter: factor out arg printing code to PrintCallArgs
[clang.git] / test / SemaObjCXX / pointer-to-objc-pointer-conv.mm
blobd0f8404b602724f31e42cd526723ca947ee13ca5
1 // RUN: %clang_cc1 -fsyntax-only -verify %s
3 @interface G
4 @end
6 @interface F
7 - (void)bar:(id *)objects;
8 - (void)foo:(G**)objects;
9 @end
12 void a() {
13         F *b;
14         G **keys;
15         [b bar:keys];
17         id *PID;
18         [b foo:PID];
23 // pr7936
24 @interface I1 @end
26 class Wrapper {
27 public:
28   operator id() const { return (id)_value; }
29   operator Class() const { return (Class)_value; }
30   operator I1*() const { return (I1*)_value; }
32   bool Compare(id obj) { return *this == obj; }
33   bool CompareClass(Class obj) { return *this == obj; }
34   bool CompareI1(I1* obj) { return *this == obj; }
36   Wrapper &operator*();
37   Wrapper &operator[](int);
38   Wrapper& operator->*(int);
40 private:
41   long _value;
44 void f() {
45   Wrapper w;
46   w[0];
47   *w;
48   w->*(0);