diff options
-rw-r--r-- | lib/Frontend/InitPreprocessor.cpp | 3 | ||||
-rw-r--r-- | test/Preprocessor/predefined-macros.c | 26 |
2 files changed, 17 insertions, 12 deletions
diff --git a/lib/Frontend/InitPreprocessor.cpp b/lib/Frontend/InitPreprocessor.cpp index f601f3d73a..74c2ec90ec 100644 --- a/lib/Frontend/InitPreprocessor.cpp +++ b/lib/Frontend/InitPreprocessor.cpp @@ -411,6 +411,9 @@ static void InitializePredefinedMacros(const TargetInfo &TI, if (LangOpts.OptimizeSize) Builder.defineMacro("__OPTIMIZE_SIZE__"); + if (LangOpts.FastMath) + Builder.defineMacro("__FAST_MATH__"); + // Initialize target-specific preprocessor defines. // Define type sizing macros based on the target properties. diff --git a/test/Preprocessor/predefined-macros.c b/test/Preprocessor/predefined-macros.c index 85a0cb8041..5b03872c1f 100644 --- a/test/Preprocessor/predefined-macros.c +++ b/test/Preprocessor/predefined-macros.c @@ -1,12 +1,14 @@ -// This test verifies that the correct macros are predefined. It currently -// only checks for Microsoft macros. - -// RUN: %clang_cc1 %s -E -dM -triple i686-pc-win32 -fms-extensions -fmsc-version=1300 -o - | FileCheck %s - - -// CHECK: #define _INTEGRAL_MAX_BITS 64 -// CHECK: #define _MSC_EXTENSIONS 1 -// CHECK: #define _MSC_VER 1300 -// CHECK: #define _M_IX86 600 -// CHECK: #define _M_IX86_FP -// CHECK: #define _WIN32 1 +// This test verifies that the correct macros are predefined. +// +// RUN: %clang_cc1 %s -E -dM -triple i686-pc-win32 -fms-extensions \ +// RUN: -fmsc-version=1300 -o - | FileCheck %s --check-prefix=CHECK-MS +// CHECK-MS: #define _INTEGRAL_MAX_BITS 64 +// CHECK-MS: #define _MSC_EXTENSIONS 1 +// CHECK-MS: #define _MSC_VER 1300 +// CHECK-MS: #define _M_IX86 600 +// CHECK-MS: #define _M_IX86_FP +// CHECK-MS: #define _WIN32 1 +// +// RUN: %clang_cc1 %s -E -dM -ffast-math -o - \ +// RUN: | FileCheck %s --check-prefix=CHECK-FAST-MATH +// CHECK-FAST-MATH: #define __FAST_MATH__ |