// RUN: %clang_cc1 -no-opaque-pointers -std=c++11 -emit-llvm %s -o - -verify -fexceptions -fcxx-exceptions -triple x86_64-linux-gnu | FileCheck %s
// expected-no-diagnostics
void ;
void
void ;
;
// CHECK: define {{.*}} @_Z1fIsEvv() [[NONE:#[0-9]+]] {
void
// CHECK: define {{.*}} @_Z1fIA2_sEvv() [[NUW:#[0-9]+]] personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
void f<short> noexcept
// CHECK: define {{.*}} @_ZN1SIsE1fEv()
// CHECK-NOT: [[NUW]]
void
// CHECK: define {{.*}} @_ZN1SIA2_sE1fEv() [[NUW]]
void S<short> noexcept
// CHECK: define {{.*}} @_Z1fIDsEvv() [[NONE]] comdat {
;
// CHECK: define {{.*}} @_Z1fIA2_DsEvv() [[NUW]] comdat personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
;
// CHECK: define {{.*}} @_ZN1SIDsE1fEv()
// CHECK-NOT: [[NUW]]
;
// CHECK: define {{.*}} @_ZN1SIA2_DsE1fEv() [[NUW]]
;
void
// CHECK: define {{.*}} @_Z1iv
void
;
// CHECK: define {{.*}} @_Z1jv
void
// CHECK: attributes [[NONE]] = { {{.*}} }
// CHECK: attributes [[NUW]] = { mustprogress noinline nounwind{{.*}} }
// CHECK: attributes [[NUW2]] = { nounwind{{.*}} }