diff --git a/clang/include/clang/Basic/LangOptions.h b/clang/include/clang/Basic/LangOptions.h index e2a2aa71b880b3..75e88afbd97050 100644 --- a/clang/include/clang/Basic/LangOptions.h +++ b/clang/include/clang/Basic/LangOptions.h @@ -968,10 +968,7 @@ class FPOptionsOverride { setAllowFPContractAcrossStatement(); } - void setDisallowOptimizations() { - setFPPreciseEnabled(true); - setDisallowFPContract(); - } + void setDisallowOptimizations() { setFPPreciseEnabled(true); } storage_type getAsOpaqueInt() const { return (static_cast(Options.getAsOpaqueInt()) diff --git a/clang/test/AST/ast-dump-fpfeatures.cpp b/clang/test/AST/ast-dump-fpfeatures.cpp index 2c66a73812f5b3..cd00650db55cc9 100644 --- a/clang/test/AST/ast-dump-fpfeatures.cpp +++ b/clang/test/AST/ast-dump-fpfeatures.cpp @@ -198,7 +198,7 @@ float func_19(float x, float y) { // CHECK-LABEL: FunctionDecl {{.*}} func_19 'float (float, float)' // CHECK: CompoundStmt {{.*}} MathErrno=1 // CHECK: ReturnStmt -// CHECK: BinaryOperator {{.*}} 'float' '+' ConstRoundingMode=downward MathErrno=1 +// CHECK: BinaryOperator {{.*}} 'float' '+' FPContractMode=1 ConstRoundingMode=downward MathErrno=1 __attribute__((optnone)) float func_20(float x, float y) try { @@ -210,7 +210,7 @@ float func_20(float x, float y) try { // CHECK-LABEL: FunctionDecl {{.*}} func_20 'float (float, float)' // CHECK: CompoundStmt {{.*}} ConstRoundingMode=downward MathErrno=1 // CHECK: ReturnStmt -// CHECK: BinaryOperator {{.*}} 'float' '+' ConstRoundingMode=downward MathErrno=1 +// CHECK: BinaryOperator {{.*}} 'float' '+' FPContractMode=1 ConstRoundingMode=downward MathErrno=1 struct C21 { C21(float x, float y); @@ -221,15 +221,15 @@ struct C21 { }; // CHECK-LABEL: CXXMethodDecl {{.*}} a_method 'float (float, float)' -// CHECK: CompoundStmt {{.*}} ConstRoundingMode=downward MathErrno=1 +// CHECK: CompoundStmt {{.*}} FPContractMode=1 ConstRoundingMode=downward MathErrno=1 // CHECK: ReturnStmt -// CHECK: BinaryOperator {{.*}} 'float' '*' ConstRoundingMode=downward MathErrno=1 +// CHECK: BinaryOperator {{.*}} 'float' '*' FPContractMode=1 ConstRoundingMode=downward MathErrno=1 __attribute__((optnone)) C21::C21(float x, float y) : member(x + y) {} // CHECK-LABEL: CXXConstructorDecl {{.*}} C21 'void (float, float)' // CHECK: CXXCtorInitializer {{.*}} 'member' 'float' -// CHECK: BinaryOperator {{.*}} 'float' '+' ConstRoundingMode=downward MathErrno=1 +// CHECK: BinaryOperator {{.*}} 'float' '+' FPContractMode=1 ConstRoundingMode=downward MathErrno=1 template __attribute__((optnone)) T func_22(T x, T y) { @@ -238,13 +238,13 @@ __attribute__((optnone)) T func_22(T x, T y) { // CHECK-LABEL: FunctionTemplateDecl {{.*}} func_22 // CHECK: FunctionDecl {{.*}} func_22 'T (T, T)' -// CHECK: CompoundStmt {{.*}} ConstRoundingMode=downward MathErrno=1 +// CHECK: CompoundStmt {{.*}} FPContractMode=1 ConstRoundingMode=downward MathErrno=1 // CHECK: ReturnStmt -// CHECK: BinaryOperator {{.*}} '+' ConstRoundingMode=downward MathErrno=1 +// CHECK: BinaryOperator {{.*}} '+' FPContractMode=1 ConstRoundingMode=downward MathErrno=1 // CHECK: FunctionDecl {{.*}} func_22 'float (float, float)' -// CHECK: CompoundStmt {{.*}} ConstRoundingMode=downward MathErrno=1 +// CHECK: CompoundStmt {{.*}} FPContractMode=1 ConstRoundingMode=downward MathErrno=1 // CHECK: ReturnStmt -// CHECK: BinaryOperator {{.*}} 'float' '+' ConstRoundingMode=downward MathErrno=1 +// CHECK: BinaryOperator {{.*}} 'float' '+' FPContractMode=1 ConstRoundingMode=downward MathErrno=1 float func_23(float x, float y) { return func_22(x, y); diff --git a/clang/test/AST/ast-dump-fpfeatures.m b/clang/test/AST/ast-dump-fpfeatures.m index 66d639918ae1f8..e390d5b676864e 100644 --- a/clang/test/AST/ast-dump-fpfeatures.m +++ b/clang/test/AST/ast-dump-fpfeatures.m @@ -24,6 +24,6 @@ - (float) sum: (float)x with: (float)y __attribute((optnone)) { // CHECK-LABEL: ObjCImplementationDecl {{.*}} Adder // CHECK: ObjCMethodDecl {{.*}} - sum:with: 'float' -// CHECK: CompoundStmt {{.*}} MathErrno=1 +// CHECK: CompoundStmt {{.*}} FPContractMode=1 MathErrno=1 // CHECK-NEXT: ReturnStmt -// CHECK-NEXT: BinaryOperator {{.*}} 'float' '+' MathErrno=1 +// CHECK-NEXT: BinaryOperator {{.*}} 'float' '+' FPContractMode=1 MathErrno=1 diff --git a/clang/test/AST/ast-dump-late-parsing.cpp b/clang/test/AST/ast-dump-late-parsing.cpp index 45efb2b88e2a3d..5115caaa59f5e1 100644 --- a/clang/test/AST/ast-dump-late-parsing.cpp +++ b/clang/test/AST/ast-dump-late-parsing.cpp @@ -11,13 +11,13 @@ __attribute__((optnone)) T func_22(T x, T y) { // CHECK-LABEL: FunctionTemplateDecl {{.*}} func_22 // CHECK: FunctionDecl {{.*}} func_22 'T (T, T)' -// CHECK: CompoundStmt {{.*}} ConstRoundingMode=downward MathErrno=1 +// CHECK: CompoundStmt {{.*}} FPContractMode=1 ConstRoundingMode=downward MathErrno=1 // CHECK: ReturnStmt -// CHECK: BinaryOperator {{.*}} '+' ConstRoundingMode=downward MathErrno=1 +// CHECK: BinaryOperator {{.*}} '+' FPContractMode=1 ConstRoundingMode=downward MathErrno=1 // CHECK: FunctionDecl {{.*}} func_22 'float (float, float)' -// CHECK: CompoundStmt {{.*}} ConstRoundingMode=downward MathErrno=1 +// CHECK: CompoundStmt {{.*}} FPContractMode=1 ConstRoundingMode=downward MathErrno=1 // CHECK: ReturnStmt -// CHECK: BinaryOperator {{.*}} 'float' '+' ConstRoundingMode=downward MathErrno=1 +// CHECK: BinaryOperator {{.*}} 'float' '+' FPContractMode=1 ConstRoundingMode=downward MathErrno=1 float func_23(float x, float y) { return func_22(x, y);