[clang] 4707468 - Add support for clang-cl's option `-fexcess-precision`.
Zahira Ammarguellat via cfe-commits
cfe-commits at lists.llvm.org
Fri Jan 20 08:25:46 PST 2023
Author: Zahira Ammarguellat
Date: 2023-01-20T11:25:36-05:00
New Revision: 47074683c906f920cb7bba462beeb57ca4b84ab0
URL: https://github.com/llvm/llvm-project/commit/47074683c906f920cb7bba462beeb57ca4b84ab0
DIFF: https://github.com/llvm/llvm-project/commit/47074683c906f920cb7bba462beeb57ca4b84ab0.diff
LOG: Add support for clang-cl's option `-fexcess-precision`.
This option is useful for clang and clang-cl.
Differential Revision: https://reviews.llvm.org/D141929
Added:
Modified:
clang/include/clang/Driver/Options.td
clang/test/Driver/fexcess-precision.c
Removed:
################################################################################
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td
index dd3e86f21425..ec7b5bfa1554 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -1579,6 +1579,7 @@ def fignore_exceptions : Flag<["-"], "fignore-exceptions">, Group<f_Group>, Flag
HelpText<"Enable support for ignoring exception handling constructs">,
MarshallingInfoFlag<LangOpts<"IgnoreExceptions">>;
def fexcess_precision_EQ : Joined<["-"], "fexcess-precision=">, Group<f_Group>,
+ Flags<[CoreOption]>,
HelpText<"Allows control over excess precision on targets where native "
"support for the precision types is not available. By default, excess "
"precision is used to calculate intermediate results following the "
diff --git a/clang/test/Driver/fexcess-precision.c b/clang/test/Driver/fexcess-precision.c
index 05f1ddbdb70e..436751807387 100644
--- a/clang/test/Driver/fexcess-precision.c
+++ b/clang/test/Driver/fexcess-precision.c
@@ -1,29 +1,62 @@
// RUN: %clang -### -target i386 -fexcess-precision=fast -c %s 2>&1 \
// RUN: | FileCheck --check-prefix=CHECK-FAST %s
+// RUN: %clang_cl -### -target i386 -fexcess-precision=fast -c %s 2>&1 \
+// RUN: | FileCheck --check-prefix=CHECK-FAST %s
+
// RUN: %clang -### -target i386 -fexcess-precision=standard -c %s 2>&1 \
// RUN: | FileCheck --check-prefix=CHECK-STD %s
+// RUN: %clang_cl -### -target i386 -fexcess-precision=standard -c %s 2>&1 \
+// RUN: | FileCheck --check-prefix=CHECK-STD %s
+
// RUN: %clang -### -target i386 -fexcess-precision=16 -c %s 2>&1 \
// RUN: | FileCheck --check-prefix=CHECK-NONE %s
+// RUN: %clang_cl -### -target i386 -fexcess-precision=16 -c %s 2>&1 \
+// RUN: | FileCheck --check-prefix=CHECK-NONE %s
+
// RUN: %clang -### -target i386 -fexcess-precision=none -c %s 2>&1 \
// RUN: | FileCheck --check-prefix=CHECK-ERR-NONE %s
+// RUN: %clang_cl -### -target i386 -fexcess-precision=none -c %s 2>&1 \
+// RUN: | FileCheck --check-prefix=CHECK-ERR-NONE %s
// RUN: %clang -### -target x86_64 -fexcess-precision=fast -c %s 2>&1 \
// RUN: | FileCheck --check-prefix=CHECK-FAST %s
+// RUN: %clang_cl -### -target x86_64 -fexcess-precision=fast -c %s 2>&1 \
+// RUN: | FileCheck --check-prefix=CHECK-FAST %s
+
// RUN: %clang -### -target x86_64 -fexcess-precision=standard -c %s 2>&1 \
// RUN: | FileCheck --check-prefix=CHECK-STD %s
+// RUN: %clang_cl -### -target x86_64 -fexcess-precision=standard -c %s 2>&1 \
+// RUN: | FileCheck --check-prefix=CHECK-STD %s
+
// RUN: %clang -### -target x86_64 -fexcess-precision=16 -c %s 2>&1 \
// RUN: | FileCheck --check-prefix=CHECK-NONE %s
+// RUN: %clang_cl -### -target x86_64 -fexcess-precision=16 -c %s 2>&1 \
+// RUN: | FileCheck --check-prefix=CHECK-NONE %s
+
// RUN: %clang -### -target x86_64 -fexcess-precision=none -c %s 2>&1 \
// RUN: | FileCheck --check-prefixes=CHECK-ERR-NONE %s
+// RUN: %clang_cl -### -target x86_64 -fexcess-precision=none -c %s 2>&1 \
+// RUN: | FileCheck --check-prefixes=CHECK-ERR-NONE %s
// RUN: %clang -### -target aarch64 -fexcess-precision=fast -c %s 2>&1 \
// RUN: | FileCheck --check-prefix=CHECK %s
+// RUN: %clang_cl -### -target aarch64 -fexcess-precision=fast -c %s 2>&1 \
+// RUN: | FileCheck --check-prefix=CHECK %s
+
// RUN: %clang -### -target aarch64 -fexcess-precision=standard -c %s 2>&1 \
// RUN: | FileCheck --check-prefix=CHECK %s
+// RUN: %clang_cl -### -target aarch64 -fexcess-precision=standard -c %s 2>&1 \
+// RUN: | FileCheck --check-prefix=CHECK %s
+
// RUN: %clang -### -target aarch64 -fexcess-precision=16 -c %s 2>&1 \
// RUN: | FileCheck --check-prefix=CHECK-ERR-16 %s
+// RUN: %clang_cl -### -target aarch64 -fexcess-precision=16 -c %s 2>&1 \
+// RUN: | FileCheck --check-prefix=CHECK-ERR-16 %s
+
// RUN: %clang -### -target aarch64 -fexcess-precision=none -c %s 2>&1 \
// RUN: | FileCheck --check-prefix=CHECK-ERR-NONE %s
+// RUN: %clang_cl -### -target aarch64 -fexcess-precision=none -c %s 2>&1 \
+// RUN: | FileCheck --check-prefix=CHECK-ERR-NONE %s
// CHECK-FAST: "-ffloat16-excess-precision=fast"
// CHECK-STD: "-ffloat16-excess-precision=standard"
More information about the cfe-commits
mailing list