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

2007-08-27 Thread Farid Zaripov (JIRA)

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

Farid Zaripov closed STDCXX-462.



> 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 &tg =
> >> std::use_facet >(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.



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

2007-06-26 Thread Martin Sebor

Farid Zaripov (JIRA) wrote:

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

Farid Zaripov closed STDCXX-462.



FYI, this is a documentation bug. We need to change the code
on the Class Reference page as well:
http://incubator.apache.org/stdcxx/doc/stdlibref/time-get.html

It sure would be nice to figure out a way to automate these
updates between the example sources and the code in the docs.
A couple of possible approaches are here:
http://www.mail-archive.com/stdcxx-dev@incubator.apache.org/msg03284.html

Any other ideas?

Martin





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.3, 4.1.2
   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 &tg =
std::use_facet >(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.






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

2007-06-26 Thread Farid Zaripov (JIRA)

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

Farid Zaripov closed STDCXX-462.



> 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.3, 4.1.2
>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 &tg =
> >> std::use_facet >(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.