[Python-checkins] cpython (3.4): Don't use defined() in C preprocessor macros

victor.stinner python-checkins at python.org
Thu Sep 3 21:34:56 CEST 2015


https://hg.python.org/cpython/rev/94f61fe22edf
changeset:   97633:94f61fe22edf
branch:      3.4
parent:      97622:29fa1d33e421
user:        Victor Stinner <victor.stinner at gmail.com>
date:        Thu Sep 03 21:30:26 2015 +0200
summary:
  Don't use defined() in C preprocessor macros

The ICC compiler doesn't seem to support defined() in macro expansion. Example
of warning:

warning #3199: "defined" is always false in a macro expansion in Microsoft mode

files:
  Modules/posixmodule.c |  16 ++++++----------
  1 files changed, 6 insertions(+), 10 deletions(-)


diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -4781,9 +4781,7 @@
     } \
 
 
-#define UTIME_HAVE_DIR_FD (defined(HAVE_FUTIMESAT) || defined(HAVE_UTIMENSAT))
-
-#if UTIME_HAVE_DIR_FD
+#if defined(HAVE_FUTIMESAT) || defined(HAVE_UTIMENSAT)
 
 static int
 utime_dir_fd(utime_t *ut, int dir_fd, char *path, int follow_symlinks)
@@ -4806,9 +4804,7 @@
 
 #endif
 
-#define UTIME_HAVE_FD (defined(HAVE_FUTIMES) || defined(HAVE_FUTIMENS))
-
-#if UTIME_HAVE_FD
+#if defined(HAVE_FUTIMES) || defined(HAVE_FUTIMENS)
 
 static int
 utime_fd(utime_t *ut, int fd)
@@ -4912,14 +4908,14 @@
     memset(&path, 0, sizeof(path));
     path.function_name = "utime";
     memset(&utime, 0, sizeof(utime_t));
-#if UTIME_HAVE_FD
+#if defined(HAVE_FUTIMES) || defined(HAVE_FUTIMENS)
     path.allow_fd = 1;
 #endif
     if (!PyArg_ParseTupleAndKeywords(args, kwargs,
             "O&|O$OO&p:utime", keywords,
             path_converter, &path,
             &times, &ns,
-#if UTIME_HAVE_DIR_FD
+#if defined(HAVE_FUTIMESAT) || defined(HAVE_UTIMENSAT)
             dir_fd_converter, &dir_fd,
 #else
             dir_fd_unavailable, &dir_fd,
@@ -5035,13 +5031,13 @@
     else
 #endif
 
-#if UTIME_HAVE_DIR_FD
+#if defined(HAVE_FUTIMESAT) || defined(HAVE_UTIMENSAT)
     if ((dir_fd != DEFAULT_DIR_FD) || (!follow_symlinks))
         result = utime_dir_fd(&utime, dir_fd, path.narrow, follow_symlinks);
     else
 #endif
 
-#if UTIME_HAVE_FD
+#if defined(HAVE_FUTIMES) || defined(HAVE_FUTIMENS)
     if (path.fd != -1)
         result = utime_fd(&utime, path.fd);
     else

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list