Home | History | Annotate | Download | only in CodeGenObjCXX
      1 // RUN: %clang_cc1 -triple i386-apple-macosx10.6.6 -emit-llvm -fobjc-exceptions -fcxx-exceptions -fexceptions -o - %s | FileCheck %s
      2 // rdar://8940528
      3 
      4 @interface ns_array
      5 + (id) array;
      6 @end
      7 
      8 @implementation ns_array
      9 + (id) array { return 0; }
     10 @end
     11 
     12 id Groups();
     13 
     14 @protocol P @end;
     15 
     16 @interface INTF<P> {
     17     double dd;
     18 }
     19 @end
     20 
     21 id FUNC() {
     22     id groups;
     23     try
     24     {
     25       groups = Groups();  // throws on errors.
     26     }
     27     catch( INTF<P>* error )
     28     {
     29       Groups();
     30     }
     31     catch( id error )
     32     { 
     33       // CHECK: call i32 (i8*, i8*, ...)* @llvm.eh.selector({{.*}} @__gxx_personality_v0 {{.*}} @_ZTIP4INTF {{.*}} @_ZTIP11objc_object {{.*}} @_ZTIP10objc_class
     34       error = error; 
     35       groups = [ns_array array]; 
     36     }
     37     catch (Class cl) {
     38       cl = cl;
     39       groups = [ns_array array];
     40     }
     41     return groups;
     42 
     43 }
     44 
     45 int main() {
     46   FUNC();
     47   return 0;
     48 }
     49