On Thu, Jul 2, 2015 at 4:32 PM, Jakub Jelinek <ja...@redhat.com> wrote: > On Thu, Jul 02, 2015 at 04:20:16PM -0400, David Edelsohn wrote: >> After the change to C++14, Fortran trans-common.c fails to compile on >> AIX due to function declaration conflicts in unistd.h. >> >> Tobias previously added use of std::map to trans-common.c and included >> <map> first in the source file, before any GCC configuration headers. >> <map> inherently includes various system header files before GCC >> system.h and config.h have defined macros affecting system header >> files, causing later conflicts when other system header files are >> included. >> >> This patch switches the order of inclusion for trans-common.c to >> include <map> last, after system.h, config.h and other GCC headers, as >> it is included in other GCC source files. > > Generally, system headers should be included either from system.h, or > in between config.h and system.h, or right after config.h and system.h. > Including them after myriads of GCC headers risks conflicts with all the > GCC macros.
graphite-isl-ast-to-gimple.c includes <map> last. auto-profile.c includes it after system.h. I can change the patch to include it after system.h, if that is preferred. That order also works on AIX. Thanks, David