Add INCLUDE_UNIQUE_PTR and use it (PR bootstrap/82610)
authorDavid Malcolm <dmalcolm@redhat.com>
Mon, 23 Oct 2017 20:25:58 +0000 (20:25 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Mon, 23 Oct 2017 20:25:58 +0000 (20:25 +0000)
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 <memory> conditional on C++11 or
later.

From-SVN: r254024

gcc/ChangeLog
gcc/system.h
gcc/unique-ptr-tests.cc
include/ChangeLog
include/unique-ptr.h

index bed397cb07140c138c468f74350f5d3f45f74245..8aa652dfd111cff9a636f1293427b3af84424752 100644 (file)
@@ -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".
index 01bc134d1cca5c97986979fdb43676a5d8cd5748..cd464544ff430da9c88f837d141b6aea3b6f2b03 100644 (file)
@@ -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 *)
index f5b72a8c15fbfdbf3c1d98cc9a36711b3f6244b1..d27569471898aa9b003e9f1f7e314a47b8e74792 100644 (file)
@@ -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
index 805e81c0227120ad1c80b091b2443f9ddc56478e..8ccc57ae7832cc8a9a8cc593949540fa9627187e 100644 (file)
@@ -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>
 
index c5ca031c2842505e8e816a669e7a5c91dd0f7d19..0b6f11a81465dfbaa51579adb260f31df5b26252 100644 (file)
@@ -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
 {