summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/system.h10
-rw-r--r--gcc/unique-ptr-tests.cc2
-rw-r--r--include/ChangeLog5
-rw-r--r--include/unique-ptr.h4
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 <dmalcolm@redhat.com>
+
+ 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 <sebastian.perta@renesas.com>
* 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 <memory> 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
<http://www.gnu.org/licenses/>. */
#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 <dmalcolm@redhat.com>
+
+ * unique-ptr.h: Make include of <memory> conditional on C++11 or
+ later.
+
2017-10-16 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
David Malcolm <dmalcolm@redhat.com>
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 <memory>
+#if __cplusplus >= 201103
+# include <memory>
+#endif
namespace gnu
{