/* Test for hiding of ivars by local variables.  */
/* Author: Ziemowit Laski <zlaski@apple.com>.  */
/* { dg-do compile } */

__attribute__((objc_root_class)) @interface Sprite {
  int a;
}
@end

Sprite *glob;

__attribute__((objc_root_class)) @interface blah 
{
  Sprite* sprite;
}
@end

@implementation blah
- (Sprite *)load
{
    Sprite *sprite = 0;
    Sprite *glob = 0;    /* ok */
    return sprite;       /* { dg-warning "hides instance variable" } */
}
@end
