stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Sebor (JIRA)" <j...@apache.org>
Subject [jira] Created: (STDCXX-462) std::time_get example exposes undefined behavior
Date Tue, 26 Jun 2007 00:48:25 GMT
std::time_get example exposes undefined behavior
------------------------------------------------

                 Key: STDCXX-462
                 URL: https://issues.apache.org/jira/browse/STDCXX-462
             Project: C++ Standard Library
          Issue Type: Bug
          Components: Documentation
    Affects Versions: 4.1.2, 4.1.3
            Reporter: Martin Sebor
            Priority: Critical


The example program demonstrating the use of the std::time_get facet (http://incubator.apache.org/stdcxx/doc/stdlibref/time-get.html)
exposes undefined behavior. Quoting from the following post http://www.mail-archive.com/stdcxx-dev@incubator.apache.org/msg03760.html:

Martin Sebor wrote:
> Farid Zaripov wrote:
[...]
>>   Btw below is a part of the conforming program (taken from
>> time_get.cpp)?
> 
> It's not a conforming program. The locale must stay around as
> long as the last reference to the facet obtained from it. The
> tests that fail to follow this rule should be changed.
> 
>>
>> -------------------
>>     const std::time_get<char, Iter> &tg =
>>         std::use_facet<std::time_get<char, Iter> >(std::locale ("C"));
>>
>>     // Display time_base::dateorder value.
>>     std::cout << "time_base::dateorder == " << tg.date_order () <<
>> ".\n";
>> -------------------
>>
>>   This fragment fails on Dinkumware STL because of tg.date_order() uses
>> (internal)
>> pointer to the destroyed locale object.
> 
> Right, and that's allowed.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message