aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/Makefile.in1
-rw-r--r--gcc/analyzer/engine.cc2
-rw-r--r--gcc/c-family/known-headers.cc2
-rw-r--r--gcc/c-family/name-hint.h12
-rw-r--r--gcc/c/c-decl.c2
-rw-r--r--gcc/c/c-parser.c2
-rw-r--r--gcc/cp/error.c2
-rw-r--r--gcc/cp/lex.c2
-rw-r--r--gcc/cp/name-lookup.c10
-rw-r--r--gcc/cp/parser.c2
-rw-r--r--gcc/selftest-run-tests.c1
-rw-r--r--gcc/selftest.h1
-rw-r--r--gcc/system.h8
-rw-r--r--gcc/unique-ptr-tests.cc236
14 files changed, 21 insertions, 262 deletions
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 41949f0..3e0cb4794 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -1699,7 +1699,6 @@ OBJS = \
tree.o \
tristate.o \
typed-splay-tree.o \
- unique-ptr-tests.o \
valtrack.o \
value-pointer-equiv.o \
value-query.o \
diff --git a/gcc/analyzer/engine.cc b/gcc/analyzer/engine.cc
index e8a7cca..4aa246c 100644
--- a/gcc/analyzer/engine.cc
+++ b/gcc/analyzer/engine.cc
@@ -19,7 +19,7 @@ along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#include "config.h"
-#define INCLUDE_UNIQUE_PTR
+#define INCLUDE_MEMORY
#include "system.h"
#include "coretypes.h"
#include "tree.h"
diff --git a/gcc/c-family/known-headers.cc b/gcc/c-family/known-headers.cc
index a391246..572cca1 100644
--- a/gcc/c-family/known-headers.cc
+++ b/gcc/c-family/known-headers.cc
@@ -18,7 +18,7 @@ along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#include "config.h"
-#define INCLUDE_UNIQUE_PTR
+#define INCLUDE_MEMORY
#include "system.h"
#include "coretypes.h"
#include "c-family/c-common.h"
diff --git a/gcc/c-family/name-hint.h b/gcc/c-family/name-hint.h
index ea43324..3141552 100644
--- a/gcc/c-family/name-hint.h
+++ b/gcc/c-family/name-hint.h
@@ -20,12 +20,12 @@ along with GCC; see the file COPYING3. If not see
#ifndef GCC_NAME_HINT_H
#define GCC_NAME_HINT_H
-/* This header uses gnu::unique_ptr, but unique-ptr.h can't be directly
+/* This header uses std::unique_ptr, but <memory> can't be directly
included due to issues with macros. Hence it must be included from
- system.h by defining INCLUDE_UNIQUE_PTR in any source file using it. */
+ system.h by defining INCLUDE_MEMORY in any source file using it. */
-#ifndef GNU_UNIQUE_PTR_H
-# error "You must define INCLUDE_UNIQUE_PTR before including system.h to use name-hint.h"
+#ifndef INCLUDE_MEMORY
+# error "You must define INCLUDE_MEMORY before including system.h to use name-hint.h"
#endif
enum lookup_name_fuzzy_kind {
@@ -106,7 +106,7 @@ public:
/* Take ownership of this name_hint's deferred_diagnostic, for use
in chaining up deferred diagnostics. */
- gnu::unique_ptr<deferred_diagnostic> take_deferred () { return move (m_deferred); }
+ std::unique_ptr<deferred_diagnostic> take_deferred () { return move (m_deferred); }
/* Call this on a name_hint if the corresponding warning was not emitted,
in which case we should also not emit the deferred_diagnostic. */
@@ -119,7 +119,7 @@ public:
private:
const char *m_suggestion;
- gnu::unique_ptr<deferred_diagnostic> m_deferred;
+ std::unique_ptr<deferred_diagnostic> m_deferred;
};
extern name_hint lookup_name_fuzzy (tree, enum lookup_name_fuzzy_kind,
diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c
index 9e45798..4b5481c 100644
--- a/gcc/c/c-decl.c
+++ b/gcc/c/c-decl.c
@@ -26,7 +26,7 @@ along with GCC; see the file COPYING3. If not see
#include "config.h"
#define INCLUDE_STRING
-#define INCLUDE_UNIQUE_PTR
+#define INCLUDE_MEMORY
#include "system.h"
#include "coretypes.h"
#include "target.h"
diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c
index e99c847..e25df4f 100644
--- a/gcc/c/c-parser.c
+++ b/gcc/c/c-parser.c
@@ -36,7 +36,7 @@ along with GCC; see the file COPYING3. If not see
location rather than implicitly using input_location. */
#include "config.h"
-#define INCLUDE_UNIQUE_PTR
+#define INCLUDE_MEMORY
#include "system.h"
#include "coretypes.h"
#include "target.h"
diff --git a/gcc/cp/error.c b/gcc/cp/error.c
index daea3b3..323643d 100644
--- a/gcc/cp/error.c
+++ b/gcc/cp/error.c
@@ -19,7 +19,7 @@ along with GCC; see the file COPYING3. If not see
#include "config.h"
/* For use with name_hint. */
-#define INCLUDE_UNIQUE_PTR
+#define INCLUDE_MEMORY
#include "system.h"
#include "coretypes.h"
#include "cp-tree.h"
diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c
index 43abd01..06de6cf 100644
--- a/gcc/cp/lex.c
+++ b/gcc/cp/lex.c
@@ -23,7 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "config.h"
/* For use with name_hint. */
-#define INCLUDE_UNIQUE_PTR
+#define INCLUDE_MEMORY
#include "system.h"
#include "coretypes.h"
#include "cp-tree.h"
diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c
index 229ba45..6b5e434 100644
--- a/gcc/cp/name-lookup.c
+++ b/gcc/cp/name-lookup.c
@@ -19,7 +19,7 @@ along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#include "config.h"
-#define INCLUDE_UNIQUE_PTR
+#define INCLUDE_MEMORY
#include "system.h"
#include "coretypes.h"
#include "cp-tree.h"
@@ -6340,7 +6340,7 @@ class namespace_limit_reached : public deferred_diagnostic
{
public:
namespace_limit_reached (location_t loc, unsigned limit, tree name,
- gnu::unique_ptr<deferred_diagnostic> wrapped)
+ std::unique_ptr<deferred_diagnostic> wrapped)
: deferred_diagnostic (loc),
m_limit (limit), m_name (name),
m_wrapped (move (wrapped))
@@ -6360,7 +6360,7 @@ class namespace_limit_reached : public deferred_diagnostic
private:
unsigned m_limit;
tree m_name;
- gnu::unique_ptr<deferred_diagnostic> m_wrapped;
+ std::unique_ptr<deferred_diagnostic> m_wrapped;
};
/* Subclass of deferred_diagnostic, for use when issuing a single suggestion.
@@ -6604,7 +6604,7 @@ suggest_alternatives_for (location_t location, tree name,
if (!result)
result = suggest_alternatives_for_1 (location, name, suggest_misspellings);
- return ns_hints.maybe_decorate_with_limit (gnu::move (result));
+ return ns_hints.maybe_decorate_with_limit (std::move (result));
}
/* The second half of suggest_alternatives_for, for when no exact matches
@@ -6649,7 +6649,7 @@ suggest_alternatives_in_other_namespaces (location_t location, tree name)
name_hint result = ns_hints.convert_candidates_to_name_hint ();
- return ns_hints.maybe_decorate_with_limit (gnu::move (result));
+ return ns_hints.maybe_decorate_with_limit (std::move (result));
}
/* A well-known name within the C++ standard library, returned by
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index de464afd..52225d4 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -19,7 +19,7 @@ along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#include "config.h"
-#define INCLUDE_UNIQUE_PTR
+#define INCLUDE_MEMORY
#include "system.h"
#include "coretypes.h"
#include "cp-tree.h"
diff --git a/gcc/selftest-run-tests.c b/gcc/selftest-run-tests.c
index 6a8f291..8eb1239 100644
--- a/gcc/selftest-run-tests.c
+++ b/gcc/selftest-run-tests.c
@@ -71,7 +71,6 @@ selftest::run_tests ()
sreal_c_tests ();
fibonacci_heap_c_tests ();
typed_splay_tree_c_tests ();
- unique_ptr_tests_cc_tests ();
opt_proposer_c_tests ();
opts_c_tests ();
json_cc_tests ();
diff --git a/gcc/selftest.h b/gcc/selftest.h
index 24ef57cb..e6c7fc3 100644
--- a/gcc/selftest.h
+++ b/gcc/selftest.h
@@ -262,7 +262,6 @@ extern void tree_cfg_c_tests ();
extern void tree_diagnostic_path_cc_tests ();
extern void tristate_cc_tests ();
extern void typed_splay_tree_c_tests ();
-extern void unique_ptr_tests_cc_tests ();
extern void vec_c_tests ();
extern void vec_perm_indices_c_tests ();
extern void wide_int_cc_tests ();
diff --git a/gcc/system.h b/gcc/system.h
index 4ac656c..2cd2017 100644
--- a/gcc/system.h
+++ b/gcc/system.h
@@ -737,12 +737,10 @@ extern int vsnprintf (char *, size_t, const char *, va_list);
/* 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. */
+ preprocessor to redefine "abort" as "fancy_abort" below. */
-#ifdef INCLUDE_UNIQUE_PTR
-# include "unique-ptr.h"
+#ifdef INCLUDE_MEMORY
+# include <memory>
#endif
#ifdef INCLUDE_MALLOC_H
diff --git a/gcc/unique-ptr-tests.cc b/gcc/unique-ptr-tests.cc
deleted file mode 100644
index 975dd57..0000000
--- a/gcc/unique-ptr-tests.cc
+++ /dev/null
@@ -1,236 +0,0 @@
-/* Unit tests for unique-ptr.h.
- Copyright (C) 2017-2021 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 3, or (at your option) any later
-version.
-
-GCC is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License
-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 "selftest.h"
-
-#if CHECKING_P
-
-namespace selftest {
-
-namespace {
-
-/* A class for counting ctor and dtor invocations. */
-
-class stats
-{
-public:
- stats () : ctor_count (0), dtor_count (0) {}
-
- int ctor_count;
- int dtor_count;
-};
-
-/* A class that uses "stats" to track its ctor and dtor invocations. */
-
-class foo
-{
-public:
- foo (stats &s) : m_s (s) { ++m_s.ctor_count; }
- ~foo () { ++m_s.dtor_count; }
-
- int example_method () const { return 42; }
-
-private:
- foo (const foo&);
- foo & operator= (const foo &);
-
-private:
- stats &m_s;
-};
-
-/* A struct for testing unique_ptr<T[]>. */
-
-class has_default_ctor
-{
-public:
- has_default_ctor () : m_field (42) {}
- int m_field;
-};
-
-/* A dummy struct for testing unique_xmalloc_ptr. */
-
-struct dummy
-{
- int field;
-};
-
-} // anonymous namespace
-
-/* Verify that the default ctor inits ptrs to NULL. */
-
-static void
-test_null_ptr ()
-{
- gnu::unique_ptr<void *> p;
- ASSERT_EQ (NULL, p);
-
- gnu::unique_xmalloc_ptr<void *> q;
- ASSERT_EQ (NULL, q);
-}
-
-/* Verify that deletion happens when a unique_ptr goes out of scope. */
-
-static void
-test_implicit_deletion ()
-{
- stats s;
- ASSERT_EQ (0, s.ctor_count);
- ASSERT_EQ (0, s.dtor_count);
-
- {
- gnu::unique_ptr<foo> f (new foo (s));
- ASSERT_NE (NULL, f);
- ASSERT_EQ (1, s.ctor_count);
- ASSERT_EQ (0, s.dtor_count);
- }
-
- /* Verify that the foo was implicitly deleted. */
- ASSERT_EQ (1, s.ctor_count);
- ASSERT_EQ (1, s.dtor_count);
-}
-
-/* Verify that we can assign to a NULL unique_ptr. */
-
-static void
-test_overwrite_of_null ()
-{
- stats s;
- ASSERT_EQ (0, s.ctor_count);
- ASSERT_EQ (0, s.dtor_count);
-
- {
- gnu::unique_ptr<foo> f;
- ASSERT_EQ (NULL, f);
- ASSERT_EQ (0, s.ctor_count);
- ASSERT_EQ (0, s.dtor_count);
-
- /* Overwrite with a non-NULL value. */
- f = gnu::unique_ptr<foo> (new foo (s));
- ASSERT_EQ (1, s.ctor_count);
- ASSERT_EQ (0, s.dtor_count);
- }
-
- /* Verify that the foo is implicitly deleted. */
- ASSERT_EQ (1, s.ctor_count);
- ASSERT_EQ (1, s.dtor_count);
-}
-
-/* Verify that we can assign to a non-NULL unique_ptr. */
-
-static void
-test_overwrite_of_non_null ()
-{
- stats s;
- ASSERT_EQ (0, s.ctor_count);
- ASSERT_EQ (0, s.dtor_count);
-
- {
- gnu::unique_ptr<foo> f (new foo (s));
- ASSERT_NE (NULL, f);
- ASSERT_EQ (1, s.ctor_count);
- ASSERT_EQ (0, s.dtor_count);
-
- /* Overwrite with a different value. */
- f = gnu::unique_ptr<foo> (new foo (s));
- ASSERT_EQ (2, s.ctor_count);
- ASSERT_EQ (1, s.dtor_count);
- }
-
- /* Verify that the 2nd foo was implicitly deleted. */
- ASSERT_EQ (2, s.ctor_count);
- ASSERT_EQ (2, s.dtor_count);
-}
-
-/* Verify that unique_ptr's overloaded ops work. */
-
-static void
-test_overloaded_ops ()
-{
- stats s;
- gnu::unique_ptr<foo> f (new foo (s));
- ASSERT_EQ (42, f->example_method ());
- ASSERT_EQ (42, (*f).example_method ());
- ASSERT_EQ (f, f);
- ASSERT_NE (NULL, f.get ());
-
- gnu::unique_ptr<foo> g (new foo (s));
- ASSERT_NE (f, g);
-}
-
-/* Verify that the gnu::unique_ptr specialization for T[] works. */
-
-static void
-test_array_new ()
-{
- const int num = 10;
- gnu::unique_ptr<has_default_ctor[]> p (new has_default_ctor[num]);
- ASSERT_NE (NULL, p.get ());
- /* Verify that operator[] works, and that the default ctor was called
- on each element. */
- for (int i = 0; i < num; i++)
- ASSERT_EQ (42, p[i].m_field);
-}
-
-/* Verify that gnu::unique_xmalloc_ptr works. */
-
-static void
-test_xmalloc ()
-{
- gnu::unique_xmalloc_ptr<dummy> p (XNEW (dummy));
- ASSERT_NE (NULL, p.get ());
-}
-
-/* Verify the gnu::unique_xmalloc_ptr specialization for T[]. */
-
-static void
-test_xmalloc_array ()
-{
- const int num = 10;
- gnu::unique_xmalloc_ptr<dummy[]> p (XNEWVEC (dummy, num));
- ASSERT_NE (NULL, p.get ());
-
- /* Verify that operator[] works. */
- for (int i = 0; i < num; i++)
- p[i].field = 42;
- for (int i = 0; i < num; i++)
- ASSERT_EQ (42, p[i].field);
-}
-
-/* Run all of the selftests within this file. */
-
-void
-unique_ptr_tests_cc_tests ()
-{
- test_null_ptr ();
- test_implicit_deletion ();
- test_overwrite_of_null ();
- test_overwrite_of_non_null ();
- test_overloaded_ops ();
- test_array_new ();
- test_xmalloc ();
- test_xmalloc_array ();
-}
-
-} // namespace selftest
-
-#endif /* #if CHECKING_P */