From b367de5dc31371f88b59e165aa6b8be4ed9ee070 Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Mon, 23 Oct 2017 20:25:58 +0000 Subject: [PATCH] Add INCLUDE_UNIQUE_PTR and use it (PR bootstrap/82610) gcc/ChangeLog: PR bootstrap/82610 * system.h: Conditionally include "unique-ptr.h" if INCLUDE_UNIQUE_PTR is defined. * unique-ptr-tests.cc: Remove include of "unique-ptr.h" in favor of defining INCLUDE_UNIQUE_PTR before including "system.h". include/ChangeLog: * unique-ptr.h: Make include of conditional on C++11 or later. From-SVN: r254024 --- gcc/ChangeLog | 8 ++++++++ gcc/system.h | 10 ++++++++++ gcc/unique-ptr-tests.cc | 2 +- include/ChangeLog | 5 +++++ include/unique-ptr.h | 4 +++- 5 files changed, 27 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bed397cb071..8aa652dfd11 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2017-10-23 David Malcolm + + PR bootstrap/82610 + * system.h: Conditionally include "unique-ptr.h" if + INCLUDE_UNIQUE_PTR is defined. + * unique-ptr-tests.cc: Remove include of "unique-ptr.h" in favor + of defining INCLUDE_UNIQUE_PTR before including "system.h". + 2017-10-23 Sebastian Perta * config/rl78/rl78.md: New define_expand "subdi3". diff --git a/gcc/system.h b/gcc/system.h index 01bc134d1cc..cd464544ff4 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -720,6 +720,16 @@ extern int vsnprintf (char *, size_t, const char *, va_list); #define __builtin_expect(a, b) (a) #endif +/* Some of the headers included by can use "abort" within a + namespace, e.g. "_VSTD::abort();", which fails after we use the + preprocessor to redefine "abort" as "fancy_abort" below. + Given that unique-ptr.h can use "free", we need to do this after "free" + is declared but before "abort" is overridden. */ + +#ifdef INCLUDE_UNIQUE_PTR +# include "unique-ptr.h" +#endif + /* Redefine abort to report an internal error w/o coredump, and reporting the location of the error in the source file. */ extern void fancy_abort (const char *, int, const char *) diff --git a/gcc/unique-ptr-tests.cc b/gcc/unique-ptr-tests.cc index f5b72a8c15f..d2756947189 100644 --- a/gcc/unique-ptr-tests.cc +++ b/gcc/unique-ptr-tests.cc @@ -18,9 +18,9 @@ along with GCC; see the file COPYING3. If not see . */ #include "config.h" +#define INCLUDE_UNIQUE_PTR #include "system.h" #include "coretypes.h" -#include "unique-ptr.h" #include "selftest.h" #if CHECKING_P diff --git a/include/ChangeLog b/include/ChangeLog index 805e81c0227..8ccc57ae783 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,8 @@ +2017-10-23 David Malcolm + + * unique-ptr.h: Make include of conditional on C++11 or + later. + 2017-10-16 Trevor Saunders David Malcolm diff --git a/include/unique-ptr.h b/include/unique-ptr.h index c5ca031c284..0b6f11a8146 100644 --- a/include/unique-ptr.h +++ b/include/unique-ptr.h @@ -74,7 +74,9 @@ #ifndef GNU_UNIQUE_PTR_H #define GNU_UNIQUE_PTR_H 1 -#include +#if __cplusplus >= 201103 +# include +#endif namespace gnu { -- 2.30.2