72 lines
		
	
	
		
			1010 B
		
	
	
	
		
			Objective-C
		
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1010 B
		
	
	
	
		
			Objective-C
		
	
	
	
| // RUN: %clang_cc1 -fsyntax-only -fdebugger-support -verify -Wno-objc-root-class %s
 | |
| // RUN: %clang_cc1 -x objective-c++ -fdebugger-support -fsyntax-only -verify -Wno-objc-root-class %s
 | |
| // expected-no-diagnostics
 | |
| // rdar://10997647
 | |
| 
 | |
| @interface I
 | |
| {
 | |
| @private
 | |
| int ivar;
 | |
| }
 | |
| @end
 | |
| 
 | |
| @implementation I
 | |
| - (int) meth {
 | |
|   return self->ivar;
 | |
| }
 | |
| int foo1(I* p) {
 | |
|   return p->ivar;
 | |
| }
 | |
| @end
 | |
| 
 | |
| int foo(I* p) {
 | |
|   return p->ivar;
 | |
| }
 | |
| 
 | |
| @interface B 
 | |
| @end
 | |
| 
 | |
| @implementation B 
 | |
| - (int) meth : (I*) arg {
 | |
|   return arg->ivar;
 | |
| }
 | |
| @end
 | |
| 
 | |
| 
 | |
| @interface I1 {
 | |
|  int protected_ivar;
 | |
| }
 | |
| @property int PROP_INMAIN;
 | |
| @end
 | |
| 
 | |
| @interface I1() {
 | |
|  int private_ivar;
 | |
| }
 | |
| @property int PROP_INCLASSEXT;
 | |
| @end
 | |
| 
 | |
| @implementation I1
 | |
| @synthesize PROP_INMAIN, PROP_INCLASSEXT;
 | |
| 
 | |
| - (int) Meth {
 | |
|    PROP_INMAIN = 1;
 | |
|    PROP_INCLASSEXT = 2;
 | |
|    protected_ivar = 1;  // OK
 | |
|    return private_ivar; // OK
 | |
| }
 | |
| @end
 | |
| 
 | |
| 
 | |
| @interface DER : I1
 | |
| @end
 | |
| 
 | |
| @implementation DER
 | |
| - (int) Meth {
 | |
|    protected_ivar = 1;  // OK
 | |
|    PROP_INMAIN = 1;
 | |
|    PROP_INCLASSEXT = 2; 
 | |
|    return private_ivar;
 | |
| }
 | |
| @end
 | |
| 
 |