19860e684SRichard Smith // RUN: rm -rf %t
29860e684SRichard Smith // RUN: mkdir %t
39860e684SRichard Smith 
49860e684SRichard Smith // RUN: %clang_cc1 -x c++-header %s -emit-pch -o %t/a.pch
59860e684SRichard Smith // RUN: %clang_cc1 -x c++-header %s -emit-pch -o %t/b.pch
69860e684SRichard Smith // RUN: cmp %t/a.pch %t/b.pch
79860e684SRichard Smith 
89860e684SRichard Smith #pragma float_control(push)
fp_control_0(double x)9*ae500e4dSRichard Smith double fp_control_0(double x) {
10*ae500e4dSRichard Smith   return -x + x;
11*ae500e4dSRichard Smith }
12*ae500e4dSRichard Smith 
fp_control_1(double x)139860e684SRichard Smith double fp_control_1(double x) {
149860e684SRichard Smith #pragma float_control(precise, on)
159860e684SRichard Smith   return -x + x;
169860e684SRichard Smith }
179860e684SRichard Smith 
fp_control_2(double x)189860e684SRichard Smith double fp_control_2(double x) {
199860e684SRichard Smith #pragma float_control(precise, off)
209860e684SRichard Smith   return -x + x;
219860e684SRichard Smith }
229860e684SRichard Smith #pragma float_control(pop)
23