OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

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

Only display areas with differences | Details | Blame | View Log

Rev 308 Rev 338
/* Ensure that @try/@catch blocks do not mess with types of
/* Ensure that @try/@catch blocks do not mess with types of
   local objects (other than their volatile bits).  */
   local objects (other than their volatile bits).  */
/* { dg-options "-fobjc-exceptions" } */
/* { dg-options "-fobjc-exceptions" } */
/* { dg-do compile } */
/* { dg-do compile } */
#include "../objc-obj-c++-shared/Object1.h"
#include "../objc-obj-c++-shared/Object1.h"
@protocol Proto1
@protocol Proto1
- (int)meth1;
- (int)meth1;
@end
@end
@protocol Proto2
@protocol Proto2
- (int)meth2;
- (int)meth2;
@end
@end
@interface MyClass: Object  {
@interface MyClass: Object  {
  int a;
  int a;
}
}
- (int)meth2;
- (int)meth2;
- (Object *)parm1: (id)p1 parm2: (id)p2;
- (Object *)parm1: (id)p1 parm2: (id)p2;
@end
@end
MyClass *mc1, *mc2;
MyClass *mc1, *mc2;
@implementation MyClass
@implementation MyClass
- (int)meth2 {
- (int)meth2 {
  return a;
  return a;
}
}
- (Object *)parm1: (id)p1 parm2: (id)p2 {
- (Object *)parm1: (id)p1 parm2: (id)p2 {
  @try {
  @try {
    mc2 = p2;   /* { dg-warning "type .id . does not conform to the .Proto2. protocol" } */
    mc2 = p2;   /* { dg-warning "type .id . does not conform to the .Proto2. protocol" } */
  }
  }
  @catch (id exc) {
  @catch (id exc) {
    return exc;
    return exc;
  }
  }
  mc1 = p1;  /* no warning here! */
  mc1 = p1;  /* no warning here! */
  return self;
  return self;
}
}
@end
@end
 
 

powered by: WebSVN 2.1.0

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