Home | History | Annotate | Download | only in CodeGen
      1 // RUN: %clang_cc1 -triple i386-unknown-unknown -fexceptions -emit-llvm -o - %s | FileCheck %s
      2 // RUN: %clang_cc1 -triple i386-unknown-unknown -emit-llvm -o - %s | FileCheck -check-prefix CHECK-NOEXC %s
      3 
      4 int opaque();
      5 
      6 // CHECK:       define [[INT:i.*]] @test0() [[TF:#[0-9]+]] {
      7 // CHECK-NOEXC: define [[INT:i.*]] @test0() [[NUW:#[0-9]+]] {
      8 int test0(void) {
      9   return opaque();
     10 }
     11 
     12 // <rdar://problem/8087431>: locally infer nounwind at -O0
     13 // CHECK:       define [[INT:i.*]] @test1() [[NUW:#[0-9]+]] {
     14 // CHECK-NOEXC: define [[INT:i.*]] @test1() [[NUW]] {
     15 int test1(void) {
     16   return 0;
     17 }
     18 
     19 // <rdar://problem/8283071>: not for weak functions
     20 // CHECK:       define weak [[INT:i.*]] @test2() [[TF]] {
     21 // CHECK-NOEXC: define weak [[INT:i.*]] @test2() [[NUW]] {
     22 __attribute__((weak)) int test2(void) {
     23   return 0;
     24 }
     25 
     26 // CHECK: attributes [[TF]] = { "{{.*}} }
     27 // CHECK: attributes [[NUW]] = { nounwind{{.*}} }
     28 
     29 // CHECK-NOEXC: attributes [[NUW]] = { nounwind{{.*}} }
     30