xref: /llvm-project/clang/test/CodeGen/fp-floatcontrol-class.cpp (revision bc5b5ea037dbadd281c59248ae9d2742b51c69ed)
1 // RUN: %clang_cc1 -ffp-contract=on -triple %itanium_abi_triple -emit-llvm -o - %s | FileCheck %s
2 // RUN: %clang_cc1 -ffp-contract=on -triple x86_64-linux-gnu -emit-llvm -o - %s | FileCheck %s
3 // Verify that float_control does not pertain to initializer expressions
4 
5 float y();
6 float z();
7 #pragma float_control(except, on)
8 class ON {
9   float w = 2 + y() * z();
10   // CHECK-LABEL: define {{.*}} @_ZN2ONC2Ev{{.*}}
11   // CHECK: llvm.experimental.constrained.fmul{{.*}}tonearest{{.*}}strict
12 };
13 ON on;
14 #pragma float_control(except, off)
15 class OFF {
16   float w = 2 + y() * z();
17   // CHECK-LABEL: define {{.*}} @_ZN3OFFC2Ev{{.*}}
18   // CHECK-NOT: llvm.experimental.constrained.fmul{{.*}}tonearest{{.*}}strict
19 };
20 OFF off;
21