(root)/
gcc-13.2.0/
gcc/
testsuite/
objc.dg/
ivar-scope-2.m
/* Test instance variable scope.  */
/* Author: Dimitris Papavasiliou <dpapavas@gmail.com>.  */
/* { dg-do compile } */
/* { dg-additional-options "-fno-local-ivars" } */
#include <objc/objc.h>

#if defined(__has_attribute) && __has_attribute(objc_root_class)
__attribute__((objc_root_class))
#endif
@interface MyClass
{
  int someivar;
}
- (void) testscope;
- (void) testshadowing;
@end

@implementation MyClass
- (void) testscope
{
  int a;

  a = self->someivar;  /* No warning or error. */
  a = someivar;        /* { dg-error ".someivar. undeclared" } */
}

- (void) testshadowing
{
  int someivar = 1;
  int a;

  /* Since instance variables don't have local scope no shadowing
     should occur. */
  
  a = someivar; /* No warning. */
}
@end