You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by "Farid Zaripov (JIRA)" <ji...@apache.org> on 2007/08/27 21:01:38 UTC

[jira] Resolved: (STDCXX-462) std::time_get example exposes undefined behavior

     [ https://issues.apache.org/jira/browse/STDCXX-462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Farid Zaripov resolved STDCXX-462.
----------------------------------

    Resolution: Fixed

Documentation updated thus: http://svn.apache.org/viewvc?rev=570219&view=rev

> 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
>            Assignee: Farid Zaripov
>            Priority: Critical
>             Fix For: 4.2
>
>
> 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.