Return-Path: Delivered-To: apmail-incubator-stdcxx-dev-archive@www.apache.org Received: (qmail 24702 invoked from network); 9 Dec 2006 00:39:42 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 9 Dec 2006 00:39:42 -0000 Received: (qmail 30088 invoked by uid 500); 9 Dec 2006 00:39:49 -0000 Delivered-To: apmail-incubator-stdcxx-dev-archive@incubator.apache.org Received: (qmail 30079 invoked by uid 500); 9 Dec 2006 00:39:49 -0000 Mailing-List: contact stdcxx-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: stdcxx-dev@incubator.apache.org Delivered-To: mailing list stdcxx-dev@incubator.apache.org Received: (qmail 30068 invoked by uid 99); 9 Dec 2006 00:39:49 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 08 Dec 2006 16:39:49 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 08 Dec 2006 16:39:41 -0800 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id F27117142F9 for ; Fri, 8 Dec 2006 16:39:20 -0800 (PST) Message-ID: <29891715.1165624760975.JavaMail.jira@brutus> Date: Fri, 8 Dec 2006 16:39:20 -0800 (PST) From: "Martin Sebor (JIRA)" To: stdcxx-dev@incubator.apache.org Subject: [jira] Created: (STDCXX-307) std::streambuf::imbue() stores locale when it shouldn't MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org std::streambuf::imbue() stores locale when it shouldn't ------------------------------------------------------- Key: STDCXX-307 URL: http://issues.apache.org/jira/browse/STDCXX-307 Project: C++ Standard Library Issue Type: Bug Components: 27. Input/Output Environment: all Reporter: Martin Sebor According to 27.5.2.4.1 [streambuf.virt.locales], p3, the default behavior of std::streambuf::imbue() is to do nothing. The program below detects whether the function stores the locale passed to it (it's not expected to). When compiled against the latest trunk the program abots at runtime indicating that the function does, in fact, store the locale, contrary to the requirement. $ cat z.cpp && make z && ./z #include #include #include struct MyFacet: std::locale::facet { static std::locale::id id; }; std::locale::id MyFacet::id; int main () { struct MyBuf: std::streambuf { void imbue (const std::locale &loc) { std::streambuf::imbue (loc); } } buf; const std::locale loc (buf.getloc (), new MyFacet); assert (std::has_facet(loc)); assert (!std::has_facet(buf.getloc ())); buf.imbue (loc); assert (!std::has_facet(buf.getloc ())); } gcc -c -I/build/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG -D_RWSTD_USE_CONFIG -I/build/sebor/dev/stdlib/include -I/build/sebor/gcc-4.1.0-11s/include -I/build/sebor/dev/stdlib/examples/include -pedantic -nostdinc++ -g -W -Wall -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long z.cpp gcc z.o -o z -L/build/sebor/gcc-4.1.0-11s/lib -lstd11s -lsupc++ -lm Assertion failed: !std::has_facet(buf.getloc ()), file z.cpp, line 23 Abort (core dumped) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira