// RUN: %clang_cc1 -fsyntax-only -verify -Wmissing-noreturn -fobjc-exceptions -Wno-objc-root-class %s

int test1() {
  id a;
  @throw a;
}

// PR5286
void test2(int a) {
  while (1) {
    if (a)
      return;
  }
}

// PR5286
void test3(int a) {  // expected-warning {{function 'test3' could be declared with attribute 'noreturn'}}
  while (1) {
    if (a)
      @throw (id)0;
  }
}

// <rdar://problem/4289832> - This code always returns, we should not
//  issue a noreturn warning.
@class NSException;
@class NSString;
NSString *rdar_4289832() {  // no-warning
    @try
    {
        return @"a";
    }
    @catch(NSException *exception)
    {
        return @"b";
    }
    @finally
    {
    }
}

void exit(int) __attribute__((noreturn));
@interface rdar10098695
@end

@implementation rdar10098695
- (void)method { // expected-warning{{method 'method' could be declared with attribute 'noreturn'}}
  exit(1);
}
@end
