Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: [OMPI users] No spaces between concatenated string literals causes warning on GCC 4.9 prerelease in C++11 mode
From: Jeremiah Willcock (jewillco_at_[hidden])
Date: 2013-11-05 14:12:02


In version 1.6.1 (and the same issue appears to be in SVN trunk), there
are some warnings when using <mpi.h> from code compiled in C++11 mode with
more recent snapshots of GCC 4.9:

.../include/mpi_portable_platform.h:102:38: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
           _STRINGIFY(__INTEL_COMPILER)"."_STRINGIFY(_PLATFORM_INTEL_COMPILER_BUILD_DATE)
                                       ^
.../include/mpi_portable_platform.h:135:33: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
              _STRINGIFY(__PGIC__)"."_STRINGIFY(__PGIC_MINOR__)"-"_STRINGIFY(__PGIC_PATCHLEVEL__)
                                  ^
.../include/mpi_portable_platform.h:135:62: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
              _STRINGIFY(__PGIC__)"."_STRINGIFY(__PGIC_MINOR__)"-"_STRINGIFY(__PGIC_PATCHLEVEL__)
                                                               ^
.../include/mpi_portable_platform.h:374:34: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
               _STRINGIFY(__GNUC__)"."_STRINGIFY(__GNUC_MINOR__)"."_STRINGIFY(__GNUC_PATCHLEVEL__)
                                   ^
.../include/mpi_portable_platform.h:374:63: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
               _STRINGIFY(__GNUC__)"."_STRINGIFY(__GNUC_MINOR__)"."_STRINGIFY(__GNUC_PATCHLEVEL__)
                                                                ^
.../include/mpi_portable_platform.h:377:34: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
               _STRINGIFY(__GNUC__)"."_STRINGIFY(__GNUC_MINOR__)".?"

The fix is to insert spaces between the strings like the warnings say;
doing that is compatible with both older and new language standards.

-- Jeremiah Willcock