blob: c588ca8e1b60e50b456dcef37c17427380452b3e [file] [log] [blame]
John McCall39dad532010-08-03 22:46:07 +00001// RUN: %clang_cc1 -fexceptions -emit-llvm -o - %s | FileCheck %s
2// RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck -check-prefix NOEXC %s
Daniel Dunbar709c00c2008-08-11 18:40:47 +00003
John McCall39dad532010-08-03 22:46:07 +00004int opaque();
5
6// CHECK: define [[INT:i.*]] @test0() {
7// CHECK-NOEXC: define [[INT:i.*]] @test0() nounwind {
8int test0(void) {
9 return opaque();
10}
11
12// <rdar://problem/8087431>: locally infer nounwind at -O0
13// CHECK: define [[INT:i.*]] @test1() nounwind {
14// CHECK-NOEXC: define [[INT:i.*]] @test1() nounwind {
15int test1(void) {
John McCall03b0df92010-08-03 22:49:45 +000016 return 0;
Daniel Dunbar709c00c2008-08-11 18:40:47 +000017}
John McCallb3a29f12010-08-11 22:38:33 +000018
19// <rdar://problem/8283071>: not for weak functions
20// CHECK: define weak [[INT:i.*]] @test2() {
21// CHECK-NOEXC: define weak [[INT:i.*]] @test2() nounwind {
22__attribute__((weak)) int test2(void) {
23 return 0;
24}