From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13731 invoked by alias); 11 Dec 2008 16:51:18 -0000 Received: (qmail 13331 invoked by uid 48); 11 Dec 2008 16:49:54 -0000 Date: Thu, 11 Dec 2008 16:51:00 -0000 Message-ID: <20081211164954.13330.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug libstdc++/37144] A bug in include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "hjl dot tools at gmail dot com" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2008-12/txt/msg01195.txt.bz2 ------- Comment #19 from hjl dot tools at gmail dot com 2008-12-11 16:49 ------- 1081 { 1082 m_alloc.set_throw_prob(0); 1083 value_type v = test_traits::generate_value(m_g, m_m); 1084 m_alloc.set_throw_prob(m_tp); 1085 const_key_reference r_k = test_traits::extract_key(v); 1086 typename cntnr::const_point_iterator found_it = m_p_c->find(r_k); 1087 const bool existed = (found_it != m_p_c->end()); 1088 const std::pair ins_ret = m_p_c->insert(v); 1089 1090 if (ins_ret.second) (gdb) p &r_k $3 = (const __gnu_pbds::test::basic_type *) 0x7fffffffc6c0 (gdb) p &v.first $4 = (const __gnu_pbds::test::basic_type *) 0x7fffffffc750 (gdb) p $rsp $5 = (void *) 0x7fffffffc710 (gdb) For some reason, test_traits::extract_key doesn't return the reference to v.first directly and returns a reference to a stack temporary instead. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37144