OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [obj-c++.dg/] [private-2.mm] - Diff between revs 308 and 338

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 308 Rev 338
/* Test warnings for shadowing instance variables.  */
/* Test warnings for shadowing instance variables.  */
/* Based on work by: Nicola Pero .  */
/* Based on work by: Nicola Pero .  */
/* { dg-do compile } */
/* { dg-do compile } */
#include 
#include 
@interface MySuperClass
@interface MySuperClass
{
{
@private
@private
  int _private;
  int _private;
@protected
@protected
  int _protected;
  int _protected;
@public
@public
  int _public;
  int _public;
}
}
- (void) test;
- (void) test;
@end
@end
@implementation MySuperClass
@implementation MySuperClass
- (void) test
- (void) test
{
{
  /* FIXME: I wonder if the warnings shouldn't be better generated
  /* FIXME: I wonder if the warnings shouldn't be better generated
     when the variable is declared, rather than used!  */
     when the variable is declared, rather than used!  */
  int _private = 12;
  int _private = 12;
  int _protected = 12;
  int _protected = 12;
  int _public = 12;
  int _public = 12;
  int a;
  int a;
  a = _private;    /* { dg-warning "hides instance variable" } */
  a = _private;    /* { dg-warning "hides instance variable" } */
  a = _protected;  /* { dg-warning "hides instance variable" } */
  a = _protected;  /* { dg-warning "hides instance variable" } */
  a = _public;     /* { dg-warning "hides instance variable" } */
  a = _public;     /* { dg-warning "hides instance variable" } */
}
}
@end
@end
@interface MyClass : MySuperClass
@interface MyClass : MySuperClass
@end
@end
@implementation MyClass
@implementation MyClass
- (void) test
- (void) test
{
{
  int _private = 12;
  int _private = 12;
  int _protected = 12;
  int _protected = 12;
  int _public = 12;
  int _public = 12;
  int a;
  int a;
  /* The private variable can be shadowed without warnings, because
  /* The private variable can be shadowed without warnings, because
   * it's invisible, and not accessible, to the subclass!  */
   * it's invisible, and not accessible, to the subclass!  */
  a = _private;   /* Ok  */
  a = _private;   /* Ok  */
  a = _protected; /* { dg-warning "hides instance variable" } */
  a = _protected; /* { dg-warning "hides instance variable" } */
  a = _public;    /* { dg-warning "hides instance variable" } */
  a = _public;    /* { dg-warning "hides instance variable" } */
}
}
@end
@end
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.