From: Chandler Carruth Date: Tue, 3 Jan 2012 02:46:46 +0000 (+0000) Subject: Teach the frontend to provide the builtin preprocessor defines for X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ba9186c6fca2b8dd7885c909e7b1fd76c537c4ed;p=clang Teach the frontend to provide the builtin preprocessor defines for -ffast-math. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147440 91177308-0d34-0410-b5e6-96231b3b80d8 --- 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__