Bug 29367 - pb_ds hash containers vs. _GLIBCXX_DEBUG
Summary: pb_ds hash containers vs. _GLIBCXX_DEBUG
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: libstdc++ (show other bugs)
Version: 4.2.0
: P3 normal
Target Milestone: 4.3.0
Assignee: Benjamin Kosnik
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-10-06 10:21 UTC by Benjamin Kosnik
Modified: 2008-04-25 01:03 UTC (History)
1 user (show)

See Also:
Host: all
Target: all
Build: all
Known to work:
Known to fail:
Last reconfirmed: 2007-09-07 02:13:48


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Benjamin Kosnik 2006-10-06 10:21:39 UTC
for 4.2 versions of the policy-based associated containers, the individual debug macros were stripped out and the usual libstc++-designating-debug-mode macro was used. 

This is: _GLIBCXX_DEBUG.

While doing this, I found a long-standing issue with the pb_ds hash-based containers and  the debug mode: parts are missing. This isn't the case for tree and priority_que data structures, which work perfectly. This is apparently an issue for every version of pb_ds and pb_assoc that I've seen.

Can be seen here:

/mnt/share/src/gcc/libstdc++-v3/testsuite/ext/pb_ds/example/basic_map.cc:98:   instantiated from here
/mnt/share/bld/gcc/i686-pc-linux-gnu/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp:70: error: 'm_store_hash_indicator' is not a member of 'pb_ds::detail::types_traits<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pb_ds::list_update<long unsigned int, float, std::equal_to<long unsigned int>, pb_ds::move_to_front_lu_policy<std::allocator<char> >, std::allocator<char> >, std::allocator<char>, false>'

I'm not quite sure where this is supposed to come from.
Comment 1 Benjamin Kosnik 2007-09-07 02:13:48 UTC
Mine.
Comment 2 Benjamin Kosnik 2007-09-07 02:21:12 UTC
Subject: Bug 29367

Author: bkoz
Date: Fri Sep  7 02:20:58 2007
New Revision: 128221

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=128221
Log:
2007-09-06  Benjamin Kosnik  <bkoz@redhat.com>
	
	PR libstdc++/29367
	* include/ext/pb_ds/detail/map_debug_base.hpp: From this..
	* include/ext/pb_ds/detail/debug_map_base.hpp: ...to this.
	Rename map_debug_base to debug_map_base, add std::pair output
	extractors, change duplicate map_debug_base typedef in containers
	to debug_base. Use m_store_extra_indicator for m_store_hash_indicator.
	* include/ext/pb_ds/*: Likewise.
	* include/Makefile.am: Same.
	* include/Makefile.in: Regenerate.
	

Added:
    trunk/libstdc++-v3/include/ext/pb_ds/detail/debug_map_base.hpp
      - copied, changed from r128207, trunk/libstdc++-v3/include/ext/pb_ds/detail/map_debug_base.hpp
Removed:
    trunk/libstdc++-v3/include/ext/pb_ds/detail/map_debug_base.hpp
Modified:
    trunk/libstdc++-v3/include/Makefile.am
    trunk/libstdc++-v3/include/Makefile.in
    trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/detail/types_traits.hpp
    trunk/libstdc++-v3/include/ext/pb_ds/tag_and_trait.hpp

Comment 3 Benjamin Kosnik 2007-09-07 02:25:55 UTC
Subject: Bug 29367

Author: bkoz
Date: Fri Sep  7 02:25:45 2007
New Revision: 128222

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=128222
Log:

2007-09-06  Benjamin Kosnik  <bkoz@redhat.com>
	
	PR libstdc++/29367
	* include/ext/pb_ds/detail/map_debug_base.hpp: From this..
	* include/ext/pb_ds/detail/debug_map_base.hpp: ...to this.
	Rename map_debug_base to debug_map_base, add std::pair output
	extractors, change duplicate map_debug_base typedef in containers
	to debug_base. Use m_store_extra_indicator for m_store_hash_indicator.
	* include/ext/pb_ds/*: Likewise.
	* include/Makefile.am: Same.
	* include/Makefile.in: Regenerate.


Modified:
    trunk/libstdc++-v3/ChangeLog

Comment 4 Benjamin Kosnik 2008-04-25 01:03:52 UTC
Fixed.