summaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authordodji <dodji@138bc75d-0d04-0410-961f-82ee72b054a4>2009-04-02 09:24:19 +0000
committerdodji <dodji@138bc75d-0d04-0410-961f-82ee72b054a4>2009-04-02 09:24:19 +0000
commit417718810203e8a007c070058a6caf7a22bfe583 (patch)
tree4ae7dcdc112d00327f2e63a2d51dc32abfd729db /libstdc++-v3
parentac9b13dedd3a2e002764098701f53c05a897bab4 (diff)
downloadgcc-417718810203e8a007c070058a6caf7a22bfe583.tar.gz
gcc/ChangeLog:
2009-04-02 Dodji Seketeli <dodji@redhat.com> PR c++/26693 * c-decl.c: (clone_underlying_type): Move this ... * c-common.c (set_underlying_type): ... here. Also, make sure the function properly sets TYPE_STUB_DECL() on the newly created typedef variant type. * c-common.h (is_typedef_decl, set_underlying_type): Declare ... * c-common.c (is_typedef_decl, set_underlying_type): ... new entry points. gcc/cp/ChangeLog: 2009-04-02 Dodji Seketeli <dodji@redhat.com> PR c++/26693 * decl2.c (grokfield): when a typedef appears in a class, create the typedef variant type node for it. (save_template_attributes): Creating typedef variant type node here is now useless. * decl.c (grokdeclarator): If the typedef'ed struct/class was anonymous, set the proper type name to all its type variants. (xref_basetypes) : Fixup the variant types after setting TYPE_BINFO on REF. * name-lookup.c (pushdecl_maybe_friend): Reuse the set_underlying_type function to install typedef variant types. * cp-tree.h (MEMBER_TYPES_NEEDING_ACCESS_CHECK): New template accessor macro. (append_type_to_template_for_access_check): New entry points. * semantics.c (check_accessibility_of_qualified_id): When a typedef that is a member of a class appears in a template, add it to the template. It will be ... * class.c (finish_struct_bits): Split type variant fixup into ... (fixup_type_variants): A new entry point. * pt.c (instantiate_class_template, instantiate_template ): ... access checked at template instantiation time. (resolve_type_name_type): The type name should be the name of the main type variant. (retrieve_specialization): Specializations of template typedefs aren't to be looked up in DECL_TEMPLATE_INSTANTIATIONS (tmpl). (append_type_to_template_for_access_check): New entry point. (tsubst_decl): For typedefs, build the variant type from the correct original type. (get_class_bindings): Fix function comment. (perform_typedefs_access_check): New entry point. gcc/testsuite/ChangeLog: 2009-04-02 Dodji Seketeli <dodji@redhat.com> PR c++/26693 * g++.dg/template/typedef11.C: New test. * g++.dg/template/typedef12.C: Likewise. * g++.dg/template/typedef13.C: Likewise. * g++.dg/template/typedef14.C: Likewise. * g++.dg/template/typedef15.C: Likewise. * g++.dg/template/typedef16.C: Likewise. * g++.dg/template/sfinae3.C: Compile this pedantically. The only errors expected should be the one saying the typedef is ill formed. * g++.old-deja/g++.pt/typename8.C: Likewise. * g++.dg/template/access11.C: Update this. libstdc++-v3/ChangeLog: 2009-04-02 Dodji Seketeli <dodji@redhat.com> * include/ext/bitmap_allocator.h: the typedefs should be made public if we want them to be accessible. This has been revealed by the patch that fixes PR c++/26693 in g++. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145440 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog15
-rw-r--r--libstdc++-v3/include/ext/bitmap_allocator.h2
2 files changed, 8 insertions, 9 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 997f960b59e..61b2c0594a2 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2009-04-02 Dodji Seketeli <dodji@redhat.com>
+
+ * include/ext/bitmap_allocator.h: the typedefs should be made public
+ if we want them to be accessible. This has been revealed by the patch
+ that fixes PR c++/26693 in g++.
+
2009-04-02 Jakub Jelinek <jakub@redhat.com>
* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
@@ -785,11 +791,6 @@
on HPUX.
* configure: Regenerate.
-2009-01-22 Dodji Seketeli <dodji@redhat.com>
-
- * include/ext/bitmap_allocator.h: Reverting changes related to PR
- c++/26693.
-
2009-01-21 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/29_atomics/headers/stdatomic.h/functions.c: Remove
@@ -797,10 +798,6 @@
2009-01-21 Dodji Seketeli <dodji@redhat.com>
- * include/ext/bitmap_allocator.h: the typedefs should be made public
- if we want them to be accessible. This has been revealed by the patch
- that fixes PR c++/26693 in g++.
-
2009-01-20 Benjamin Kosnik <bkoz@redhat.com>
Uros Bizjak <ubizjak@gmail.com>
diff --git a/libstdc++-v3/include/ext/bitmap_allocator.h b/libstdc++-v3/include/ext/bitmap_allocator.h
index 69f8a9d02ea..b7ff6fd4070 100644
--- a/libstdc++-v3/include/ext/bitmap_allocator.h
+++ b/libstdc++-v3/include/ext/bitmap_allocator.h
@@ -550,11 +550,13 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
*/
class free_list
{
+ public:
typedef size_t* value_type;
typedef __detail::__mini_vector<value_type> vector_type;
typedef vector_type::iterator iterator;
typedef __mutex __mutex_type;
+ private:
struct _LT_pointer_compare
{
bool