diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -1579,6 +1579,7 @@ HelpText<"Enable support for ignoring exception handling constructs">, MarshallingInfoFlag>; def fexcess_precision_EQ : Joined<["-"], "fexcess-precision=">, 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 --- 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"