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