// RUN: %clang_cc1 -no-opaque-pointers -triple powerpc64le-unknown-unknown -std=c++11 -fopenmp -fexceptions -fcxx-exceptions -O0 -emit-llvm %s -o - | FileCheck %s
// Check that regions that install a terminate scope in the exception stack can
// correctly generate complex arithmetic.
// CHECK-LABEL: ffcomplex
void
// CHECK: define internal {{.+}}[[REGNAME1]](
// CHECK-NOT: invoke
// CHECK: call noundef { double, double } @__muldc3(double noundef %{{.+}}, double noundef %{{.+}}, double noundef %{{.+}}, double noundef %{{.+}})
// CHECK-NOT: invoke
// CHECK: ret void
// Check if we are observing the function pointer attribute regardless what is
// in the exception specification of the callees.
void ;
// CHECK-LABEL: foo
void
// CHECK: define internal {{.+}}[[REGNAME2]](
// CHECK-NOT: invoke
// CHECK: call void %{{[0-9]+}}()
// CHECK-NOT: invoke
// CHECK: ret void