Mercurial > hg > CbC > CbC_gcc
diff gcc/cppbuiltin.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | 561a7518be6b |
children | 84e7813d76e9 |
line wrap: on
line diff
--- a/gcc/cppbuiltin.c Sun Aug 21 07:07:55 2011 +0900 +++ b/gcc/cppbuiltin.c Fri Oct 27 22:46:09 2017 +0900 @@ -1,6 +1,5 @@ /* Define builtin-in macros for all front ends that perform preprocessing - Copyright (C) 2010 - Free Software Foundation, Inc. + Copyright (C) 2010-2017 Free Software Foundation, Inc. This file is part of GCC. @@ -21,13 +20,13 @@ #include "config.h" #include "system.h" #include "coretypes.h" -#include "tm.h" +#include "memmodel.h" +#include "target.h" #include "tree.h" #include "version.h" #include "flags.h" #include "cpp-id-data.h" #include "cppbuiltin.h" -#include "target.h" /* Parse a BASEVER version string of the format "major.minor.patchlevel" @@ -66,6 +65,12 @@ cpp_define_formatted (pfile, "__GNUC_MINOR__=%d", minor); cpp_define_formatted (pfile, "__GNUC_PATCHLEVEL__=%d", patchlevel); cpp_define_formatted (pfile, "__VERSION__=\"%s\"", version_string); + cpp_define_formatted (pfile, "__ATOMIC_RELAXED=%d", MEMMODEL_RELAXED); + cpp_define_formatted (pfile, "__ATOMIC_SEQ_CST=%d", MEMMODEL_SEQ_CST); + cpp_define_formatted (pfile, "__ATOMIC_ACQUIRE=%d", MEMMODEL_ACQUIRE); + cpp_define_formatted (pfile, "__ATOMIC_RELEASE=%d", MEMMODEL_RELEASE); + cpp_define_formatted (pfile, "__ATOMIC_ACQ_REL=%d", MEMMODEL_ACQ_REL); + cpp_define_formatted (pfile, "__ATOMIC_CONSUME=%d", MEMMODEL_CONSUME); } @@ -85,6 +90,12 @@ cpp_define_formatted (pfile, "__PIE__=%d", flag_pie); } + if (flag_sanitize & SANITIZE_ADDRESS) + cpp_define (pfile, "__SANITIZE_ADDRESS__"); + + if (flag_sanitize & SANITIZE_THREAD) + cpp_define (pfile, "__SANITIZE_THREAD__"); + if (optimize_size) cpp_define (pfile, "__OPTIMIZE_SIZE__"); if (optimize) @@ -94,9 +105,16 @@ cpp_define (pfile, "__FAST_MATH__"); if (flag_signaling_nans) cpp_define (pfile, "__SUPPORT_SNAN__"); + if (!flag_errno_math) + cpp_define (pfile, "__NO_MATH_ERRNO__"); cpp_define_formatted (pfile, "__FINITE_MATH_ONLY__=%d", flag_finite_math_only); + if (flag_cilkplus) + cpp_define (pfile, "__cilk=200"); + + if (flag_check_pointer_bounds) + cpp_define (pfile, "__CHKP__"); } @@ -119,8 +137,8 @@ define_builtin_macros_for_type_sizes (cpp_reader *pfile) { #define define_type_sizeof(NAME, TYPE) \ - cpp_define_formatted (pfile, NAME"="HOST_WIDE_INT_PRINT_DEC, \ - tree_low_cst (TYPE_SIZE_UNIT (TYPE), 1)) + cpp_define_formatted (pfile, NAME"=" HOST_WIDE_INT_PRINT_DEC, \ + tree_to_uhwi (TYPE_SIZE_UNIT (TYPE))) define_type_sizeof ("__SIZEOF_INT__", integer_type_node); define_type_sizeof ("__SIZEOF_LONG__", long_integer_type_node); @@ -165,7 +183,7 @@ /* ptr_type_node can't be used here since ptr_mode is only set when toplev calls backend_init which is not done with -E switch. */ cpp_define_formatted (pfile, "__SIZEOF_POINTER__=%d", - POINTER_SIZE / BITS_PER_UNIT); + 1 << ceil_log2 ((POINTER_SIZE + BITS_PER_UNIT - 1) / BITS_PER_UNIT)); }