[jira] Created: (STDCXX-677) IBM XLC++ 9.0/AIX 5.3] tr1/cstdint limit macros incompatible with system provided C headers

2007-12-05 Thread Travis Vitek (JIRA)
IBM XLC++ 9.0/AIX 5.3] tr1/cstdint limit macros incompatible with system 
provided C headers
---

 Key: STDCXX-677
 URL: https://issues.apache.org/jira/browse/STDCXX-677
 Project: C++ Standard Library
  Issue Type: Bug
  Components: TR1.8 - C Compatibility
Affects Versions: 4.2.0
Reporter: Travis Vitek
Assignee: Travis Vitek
 Fix For: 4.2.1


The following testcase fails to compile because both the C library stdint.h and 
our tr1/cstdint headers define defines the C99 limit macros. It looks like we 
need to avoid defining the macros if a previous definition already exists. Is 
that a sufficient solution? What if our defintion is different for some reason?

$ cat u.cpp && gmake u
#include 
#include 

xlCcore -c -I/amd/devco/vitek/stdcxx/trunk/include/ansi -D_RWSTDDEBUG
-I/amd/devco/vitek/stdcxx/trunk/include -I/build/vitek/11s/include 
-I/amd/devco/vitek/stdcxx/trunk/tests/include  -g -qtemplateregistry=u.ti 
u.cpp
"/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 56.11: 1540-0848 (S) 
The macro name "INT8_MAX" is already defined with a different definition.
"/usr/include/stdint.h", line 142.9: 1540-0425 (I) "INT8_MAX" is defined on 
line 142 of "/usr/include/stdint.h".
"/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 57.11: 1540-0848 (S) 
The macro name "UINT8_MAX" is already defined with a different definition.
"/usr/include/stdint.h", line 149.9: 1540-0425 (I) "UINT8_MAX" is defined on 
line 149 of "/usr/include/stdint.h".
"/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 116.11: 1540-0848 (S) 
The macro name "INT16_MAX" is already defined with a different definition.
"/usr/include/stdint.h", line 143.9: 1540-0425 (I) "INT16_MAX" is defined on 
line 143 of "/usr/include/stdint.h".
"/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 117.11: 1540-0848 (S) 
The macro name "UINT16_MAX" is already defined with a different definition.
"/usr/include/stdint.h", line 150.9: 1540-0425 (I) "UINT16_MAX" is defined on 
line 150 of "/usr/include/stdint.h".
"/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 171.13: 1540-0848 (S) 
The macro name "INT32_MAX" is already defined with a different definition.
"/usr/include/stdint.h", line 144.9: 1540-0425 (I) "INT32_MAX" is defined on 
line 144 of "/usr/include/stdint.h".
"/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 172.13: 1540-0848 (S) 
The macro name "UINT32_MAX" is already defined with a different definition.
"/usr/include/stdint.h", line 151.9: 1540-0425 (I) "UINT32_MAX" is defined on 
line 151 of "/usr/include/stdint.h".
"/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 225.13: 1540-0848 (S) 
The macro name "INT64_MAX" is already defined with a different definition.
"/usr/include/stdint.h", line 146.9: 1540-0425 (I) "INT64_MAX" is defined on 
line 146 of "/usr/include/stdint.h".
"/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 226.13: 1540-0848 (S) 
The macro name "UINT64_MAX" is already defined with a different definition.
"/usr/include/stdint.h", line 153.9: 1540-0425 (I) "UINT64_MAX" is defined on 
line 153 of "/usr/include/stdint.h".
"/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 323.9: 1540-0848 (S) 
The macro name "PTRDIFF_MIN" is already defined with a different definition.
"/usr/include/stdint.h", line 222.9: 1540-0425 (I) "PTRDIFF_MIN" is defined on 
line 222 of "/usr/include/stdint.h".
"/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 324.9: 1540-0848 (S) 
The macro name "PTRDIFF_MAX" is already defined with a different definition.
"/usr/include/stdint.h", line 223.9: 1540-0425 (I) "PTRDIFF_MAX" is defined on 
line 223 of "/usr/include/stdint.h".
"/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 326.9: 1540-0848 (S) 
The macro name "SIZE_MAX" is already defined with a different definition.
"/usr/include/stdint.h", line 246.9: 1540-0425 (I) "SIZE_MAX" is defined on 
line 246 of "/usr/include/stdint.h".
"/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 328.9: 1540-0848 (S) 
The macro name "WCHAR_MIN" is already defined with a different definition.
"/usr/include/stdint.h", line 236.9: 1540-0425 (I) "WCHAR_MIN" is defined on 
line 236 of "/usr/include/stdint.h".
"/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 329.9: 1540-0848 (S) 
The macro name "WCHAR_MAX" is already defined with a different definition.
"/usr/include/stdint.h", line 234.9: 1540-0425 (I) "WCHAR_MAX" is defined on 
line 234 of "/usr/include/stdint.h".
"/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 331.9: 1540-0848 (S) 
The macro name "WINT_MIN" is already defined with a different definition.
"/usr/include/stdint.h", line 239.9: 1540-0425 (I) "WINT_MIN" is defined on 
line 239 of "/usr/include/stdint.h".
"/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 332.9: 1540-0848 (S) 
T

[jira] Updated: (STDCXX-677) [IBM XLC++ 9.0/AIX 5.3] tr1/cstdint limit macros incompatible with system provided C headers

2007-12-05 Thread Travis Vitek (JIRA)

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

Travis Vitek updated STDCXX-677:


Summary: [IBM XLC++ 9.0/AIX 5.3] tr1/cstdint limit macros incompatible with 
system provided C headers  (was: IBM XLC++ 9.0/AIX 5.3] tr1/cstdint limit 
macros incompatible with system provided C headers)

> [IBM XLC++ 9.0/AIX 5.3] tr1/cstdint limit macros incompatible with system 
> provided C headers
> 
>
> Key: STDCXX-677
> URL: https://issues.apache.org/jira/browse/STDCXX-677
> Project: C++ Standard Library
>  Issue Type: Bug
>  Components: TR1.8 - C Compatibility
>Affects Versions: 4.2.0
>Reporter: Travis Vitek
>Assignee: Travis Vitek
> Fix For: 4.2.1
>
>
> The following testcase fails to compile because both the C library stdint.h 
> and our tr1/cstdint headers define defines the C99 limit macros. It looks 
> like we need to avoid defining the macros if a previous definition already 
> exists. Is that a sufficient solution? What if our defintion is different for 
> some reason?
> $ cat u.cpp && gmake u
> #include 
> #include 
> xlCcore -c -I/amd/devco/vitek/stdcxx/trunk/include/ansi -D_RWSTDDEBUG
> -I/amd/devco/vitek/stdcxx/trunk/include -I/build/vitek/11s/include 
> -I/amd/devco/vitek/stdcxx/trunk/tests/include  -g -qtemplateregistry=u.ti 
> u.cpp
> "/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 56.11: 1540-0848 
> (S) The macro name "INT8_MAX" is already defined with a different definition.
> "/usr/include/stdint.h", line 142.9: 1540-0425 (I) "INT8_MAX" is defined on 
> line 142 of "/usr/include/stdint.h".
> "/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 57.11: 1540-0848 
> (S) The macro name "UINT8_MAX" is already defined with a different definition.
> "/usr/include/stdint.h", line 149.9: 1540-0425 (I) "UINT8_MAX" is defined on 
> line 149 of "/usr/include/stdint.h".
> "/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 116.11: 1540-0848 
> (S) The macro name "INT16_MAX" is already defined with a different definition.
> "/usr/include/stdint.h", line 143.9: 1540-0425 (I) "INT16_MAX" is defined on 
> line 143 of "/usr/include/stdint.h".
> "/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 117.11: 1540-0848 
> (S) The macro name "UINT16_MAX" is already defined with a different 
> definition.
> "/usr/include/stdint.h", line 150.9: 1540-0425 (I) "UINT16_MAX" is defined on 
> line 150 of "/usr/include/stdint.h".
> "/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 171.13: 1540-0848 
> (S) The macro name "INT32_MAX" is already defined with a different definition.
> "/usr/include/stdint.h", line 144.9: 1540-0425 (I) "INT32_MAX" is defined on 
> line 144 of "/usr/include/stdint.h".
> "/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 172.13: 1540-0848 
> (S) The macro name "UINT32_MAX" is already defined with a different 
> definition.
> "/usr/include/stdint.h", line 151.9: 1540-0425 (I) "UINT32_MAX" is defined on 
> line 151 of "/usr/include/stdint.h".
> "/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 225.13: 1540-0848 
> (S) The macro name "INT64_MAX" is already defined with a different definition.
> "/usr/include/stdint.h", line 146.9: 1540-0425 (I) "INT64_MAX" is defined on 
> line 146 of "/usr/include/stdint.h".
> "/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 226.13: 1540-0848 
> (S) The macro name "UINT64_MAX" is already defined with a different 
> definition.
> "/usr/include/stdint.h", line 153.9: 1540-0425 (I) "UINT64_MAX" is defined on 
> line 153 of "/usr/include/stdint.h".
> "/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 323.9: 1540-0848 
> (S) The macro name "PTRDIFF_MIN" is already defined with a different 
> definition.
> "/usr/include/stdint.h", line 222.9: 1540-0425 (I) "PTRDIFF_MIN" is defined 
> on line 222 of "/usr/include/stdint.h".
> "/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 324.9: 1540-0848 
> (S) The macro name "PTRDIFF_MAX" is already defined with a different 
> definition.
> "/usr/include/stdint.h", line 223.9: 1540-0425 (I) "PTRDIFF_MAX" is defined 
> on line 223 of "/usr/include/stdint.h".
> "/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 326.9: 1540-0848 
> (S) The macro name "SIZE_MAX" is already defined with a different definition.
> "/usr/include/stdint.h", line 246.9: 1540-0425 (I) "SIZE_MAX" is defined on 
> line 246 of "/usr/include/stdint.h".
> "/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 328.9: 1540-0848 
> (S) The macro name "WCHAR_MIN" is already defined with a different definition.
> "/usr/include/stdint.h", line 236.9: 1540-0425 (I) "WCHAR_MIN" is defined on 
> line 236 of "/usr/include/stdint.h".
> "/amd/devco/vitek/stdcxx/trunk/include/tr1/cstdint", line 3

[jira] Updated: (STDCXX-343) [LWG #541] std::auto_ptr specialization missing

2007-12-05 Thread Travis Vitek (JIRA)

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

Travis Vitek updated STDCXX-343:


Fix Version/s: (was: 4.2.1)
   4.3

Reassigning to 4.3. We shouldn't fix this before then.

> [LWG #541] std::auto_ptr specialization missing
> -
>
> Key: STDCXX-343
> URL: https://issues.apache.org/jira/browse/STDCXX-343
> Project: C++ Standard Library
>  Issue Type: Improvement
>  Components: 20. General Utilities
>Affects Versions: 4.1.3
> Environment: all
>Reporter: Martin Sebor
>Assignee: Travis Vitek
> Fix For: 4.3
>
>
> The resolution of issue 541 adds an explicit specialization for 
> std::auto_ptr with the following definition:
> template<> class auto_ptr
> {
> public:
> typedef void element_type;
> };
> See http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#541
> This needs to be implemented (since otherwise the specialization has 
> undefined behavior -- see STDCXX-172).

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



[jira] Issue Comment Edited: (STDCXX-343) [LWG #541] std::auto_ptr specialization missing

2007-12-05 Thread Travis Vitek (JIRA)

[ 
https://issues.apache.org/jira/browse/STDCXX-343?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12548882
 ] 

vitek edited comment on STDCXX-343 at 12/5/07 3:47 PM:
--

Rescheduled for 4.3. We shouldn't fix this before then.

  was (Author: vitek):
Reassigning to 4.3. We shouldn't fix this before then.
  
> [LWG #541] std::auto_ptr specialization missing
> -
>
> Key: STDCXX-343
> URL: https://issues.apache.org/jira/browse/STDCXX-343
> Project: C++ Standard Library
>  Issue Type: Improvement
>  Components: 20. General Utilities
>Affects Versions: 4.1.3
> Environment: all
>Reporter: Martin Sebor
>Assignee: Travis Vitek
> Fix For: 4.3
>
>
> The resolution of issue 541 adds an explicit specialization for 
> std::auto_ptr with the following definition:
> template<> class auto_ptr
> {
> public:
> typedef void element_type;
> };
> See http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#541
> This needs to be implemented (since otherwise the specialization has 
> undefined behavior -- see STDCXX-172).

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



[jira] Commented: (STDCXX-343) [LWG #541] std::auto_ptr specialization missing

2007-12-05 Thread Travis Vitek (JIRA)

[ 
https://issues.apache.org/jira/browse/STDCXX-343?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12548880
 ] 

Travis Vitek commented on STDCXX-343:
-

This is a source incompatible change. Technically this should be rescheduled 
for 5.0. Discussion on this particular bug can be found here
http://www.nabble.com/forum/ViewPost.jtp?post=13986319&framed=y

> [LWG #541] std::auto_ptr specialization missing
> -
>
> Key: STDCXX-343
> URL: https://issues.apache.org/jira/browse/STDCXX-343
> Project: C++ Standard Library
>  Issue Type: Improvement
>  Components: 20. General Utilities
>Affects Versions: 4.1.3
> Environment: all
>Reporter: Martin Sebor
>Assignee: Travis Vitek
> Fix For: 4.2.1
>
>
> The resolution of issue 541 adds an explicit specialization for 
> std::auto_ptr with the following definition:
> template<> class auto_ptr
> {
> public:
> typedef void element_type;
> };
> See http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#541
> This needs to be implemented (since otherwise the specialization has 
> undefined behavior -- see STDCXX-172).

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



[jira] Closed: (STDCXX-223) [Windows] std::time_put %c time format specifier not implemented

2007-12-05 Thread Travis Vitek (JIRA)

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

Travis Vitek closed STDCXX-223.
---


> [Windows] std::time_put %c time format specifier not implemented
> 
>
> Key: STDCXX-223
> URL: https://issues.apache.org/jira/browse/STDCXX-223
> Project: C++ Standard Library
>  Issue Type: Bug
>  Components: 22. Localization
>Affects Versions: 4.1.2, 4.1.3, 4.1.4
> Environment: Windows
>Reporter: Martin Sebor
>Assignee: Travis Vitek
> Fix For: 4.2.1
>
>
> Moved from the Rogue Wave bug tracking database:
> Created By: sebor @ Apr 29, 2003 01:34:21 PM
>  Original Message 
> Subject: puzzle
> Date: Tue, 22 Apr 2003 12:31:46 -0600
> From: "L. Nicoara" <[EMAIL PROTECTED]>
> To: Martin Sebor <[EMAIL PROTECTED]>
> This program prints A - Windows, VC7 (also 15d). Is there anything
> obviously wrong with it?
> Liviu
> #include 
> #include 
> #include 
> #include 
> int main ()
> {
> const char* fmt = "%c";
> tm t = tm ();
> t.tm_sec   = 0;
> t.tm_min   = 0;
> t.tm_hour  = 0;
> t.tm_mday  = 13;
> t.tm_mon   = 8;
> t.tm_year  = 67;
> t.tm_wday  = 3;
> t.tm_isdst = 0;
> typedef std::ostreambuf_iterator iter_t;
> std::locale loc ("C");
> std::ostringstream os;
> iter_t os_iter(os.rdbuf ());
> const std::time_put& fac =
> std::use_facet >(loc);
> fac.put(os_iter,os,os.fill(), &t, fmt, fmt + std::strlen (fmt));
> std::cout << "Date-time : " << os.str().c_str () << std::endl;
> return 0;
> }

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



[jira] Updated: (STDCXX-676) [MSVC] 22.locale.time.put test fails

2007-12-05 Thread Travis Vitek (JIRA)

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

Travis Vitek updated STDCXX-676:


Attachment: stdcxx-223.patch

New patch includes discussed changes.

2007-12-05 Travis Vitek <[EMAIL PROTECTED]> 

STDCXX-676
* tests/locale/22.locale.time.put.cpp [_MSC_VER] (rw_strftime):
Avoid passing unsupported format specifiers to strftime(). 

> [MSVC] 22.locale.time.put test fails
> 
>
> Key: STDCXX-676
> URL: https://issues.apache.org/jira/browse/STDCXX-676
> Project: C++ Standard Library
>  Issue Type: Bug
>  Components: Tests
>Affects Versions: 4.2.0
>Reporter: Travis Vitek
> Fix For: 4.2.1
>
> Attachments: stdcxx-223.patch
>
>
> In my manual runs I have noticed that the test fails because the MSCRT 
> strftime doesn't support %T, %e, or %G and asserts internally. This doesn't 
> appear to happen on all configurations because these tests are running to 
> completion on some of the nightly builds. 
> I think the rw_strftime() that is inside the test could be expanded to avoid 
> the assert inside the CRT so that the test would pass on all windows 
> configurations. 

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



[jira] Updated: (STDCXX-676) [MSVC] 22.locale.time.put test fails

2007-12-05 Thread Travis Vitek (JIRA)

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

Travis Vitek updated STDCXX-676:


Attachment: (was: stdcxx-223.patch)

> [MSVC] 22.locale.time.put test fails
> 
>
> Key: STDCXX-676
> URL: https://issues.apache.org/jira/browse/STDCXX-676
> Project: C++ Standard Library
>  Issue Type: Bug
>  Components: Tests
>Affects Versions: 4.2.0
>Reporter: Travis Vitek
> Fix For: 4.2.1
>
>
> In my manual runs I have noticed that the test fails because the MSCRT 
> strftime doesn't support %T, %e, or %G and asserts internally. This doesn't 
> appear to happen on all configurations because these tests are running to 
> completion on some of the nightly builds. 
> I think the rw_strftime() that is inside the test could be expanded to avoid 
> the assert inside the CRT so that the test would pass on all windows 
> configurations. 

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



[jira] Commented: (STDCXX-443) [IBM XLC++] should avoid using -qinline or -Q in C++ code

2007-12-05 Thread Travis Vitek (JIRA)

[ 
https://issues.apache.org/jira/browse/STDCXX-443?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12548755
 ] 

Travis Vitek commented on STDCXX-443:
-

I've done 12d builds [one with -O and the other with -O -Q]. The library is 
smaller and executables are _usually_ smaller with just -O [as expected because 
of less inlining]. Do we want to run some sort of performance benchmark to 
decide what we should do, or do we just want to follow the documentation?

 -O   -O -Q File Name
1826061 1841108 libstd12d.so.4.2.0
  31994   32286 search
  39317   39281 set_diff
  38813   38835 set_intr
  39945   39909 set_sym_diff
  39983   39947 set_union
  60225   60459 setex
  30370   30439 sieve
  24177   24147 slice
  27590   27856 slice_array
  50960   52112 sort
  77747   78013 spell
  63653   63970 stack
  24598   24620 stdexcept
  84276   85530 stocks
  33127   45083 stream_iterator
  26953   27219 string
  41160   41400 stringbuf
  40945   41211 strstream
  42568   42564 strstreambuf
  32063   32360 swap



> [IBM XLC++] should avoid using -qinline or -Q in C++ code
> -
>
> Key: STDCXX-443
> URL: https://issues.apache.org/jira/browse/STDCXX-443
> Project: C++ Standard Library
>  Issue Type: Improvement
>  Components: Configuration
>Affects Versions: 4.1.3
> Environment: IBM VisualAge C++ 6.0, 7.0, and XLC++ 8.0
>Reporter: Martin Sebor
>Assignee: Travis Vitek
> Fix For: 4.2.1
>
>
> Quoting from the XLC++ 8.0 Compiler Reference, page 249 (-Q option):
> To maximize inlining: 
> *  for C programs, specify optimization (-O) and also specify the appropriate 
> -Q options for the C language.
> *  for C++ programs, specify optimization (-O) but do not specify the -Q 
> option.
> We should review whether our use of -Q in optimized builds is called for.

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



[jira] Commented: (STDCXX-673) [IBM XLC++ 9.0/AIX 5.3] 0.printf fails with assertions

2007-12-05 Thread Travis Vitek (JIRA)

[ 
https://issues.apache.org/jira/browse/STDCXX-673?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12548746
 ] 

Travis Vitek commented on STDCXX-673:
-

I believe that the proposed patch is sufficient, but I'm curious why we need 
the logic at all. We could just write the following

 printf ("#define _RWSTD_INT%d_T %s signed %s\n" \ 
 "#define _RWSTD_UINT%d_T %s unsigned %s\n", \ 
 width, width < 10 ? " " : "", type, \ 
 width, width < 10 ? " " : "", type); \ 

That way the type is always declared as signed. Leaving the type as `char' in 
any case seems like a bad idea. The actual underlying type is ambiguous from a 
readers perspective, and can change if the user compiles their code with with 
`-qchars='. It is quite possible that doing such a thing after 
configuration time would cause other failures, but it is possible that it would 
work also.

> [IBM XLC++ 9.0/AIX 5.3] 0.printf fails with assertions
> --
>
> Key: STDCXX-673
> URL: https://issues.apache.org/jira/browse/STDCXX-673
> Project: C++ Standard Library
>  Issue Type: Bug
>  Components: Test Driver
>Affects Versions: 4.2.0
>Reporter: Travis Vitek
>Assignee: Travis Vitek
>Priority: Minor
> Fix For: 4.2.1
>
>
> extension: "%{N}" buffer size
> /amd/devco/vitek/stdcxx/trunk/tests/src/printf.cpp:1022: 
> rw_vasnprintf(8d0, 8d8, "foo", va_list) error: errno 
> = 12: Not enough space
> /amd/devco/vitek/stdcxx/trunk/tests/src/printf.cpp:1022: 
> rw_vasnprintf(8d0, 8d8, "foo", va_list) error: errno 
> = 12: Not enough space
> /amd/devco/vitek/stdcxx/trunk/tests/src/printf.cpp:1022: 
> rw_vasnprintf(8d0, 8d8, "foo", va_list) error: errno 
> = 12: Not enough space
> /amd/devco/vitek/stdcxx/trunk/tests/src/printf.cpp:1022: 
> rw_vasnprintf(8d0, 8d8, "foo", va_list) error: errno 
> = 12: Not enough space
> /amd/devco/vitek/stdcxx/trunk/tests/src/printf.cpp:1022: 
> rw_vasnprintf(8d0, 8d8, "bar", va_list) error: errno 
> = 12: Not enough space
> /amd/devco/vitek/stdcxx/trunk/tests/src/printf.cpp:1022: 
> rw_vasnprintf(8d0, 8d8, "bar", va_list) error: errno 
> = 12: Not enough space
> /amd/devco/vitek/stdcxx/trunk/tests/src/printf.cpp:1022: 
> rw_vasnprintf(8d0, 8d8, "bar", va_list) error: errno 
> = 12: Not enough space
> /amd/devco/vitek/stdcxx/trunk/tests/src/printf.cpp:1022: 
> rw_vasnprintf(8d0, 8d8, "bar", va_list) error: errno 
> = 12: Not enough space
> extension: "[EMAIL PROTECTED]" nested format directive
> malformed directives
> Failed 8 out of 1572 assertions.

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



[jira] Assigned: (STDCXX-666) [MSVC 8-x64] 21.string.cons.cpp test fails in optimized builds due to bad codegeneration by the compiler

2007-12-05 Thread Farid Zaripov (JIRA)

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

Farid Zaripov reassigned STDCXX-666:


Assignee: Farid Zaripov

> [MSVC 8-x64] 21.string.cons.cpp test fails in optimized builds due to bad 
> codegeneration by the compiler
> 
>
> Key: STDCXX-666
> URL: https://issues.apache.org/jira/browse/STDCXX-666
> Project: C++ Standard Library
>  Issue Type: Bug
>  Components: Tests
>Affects Versions: 4.2.0
> Environment: MSVC 8.0-x64, builds 8{d|s}, 12{d|s}
>Reporter: Farid Zaripov
>Assignee: Farid Zaripov
> Fix For: 4.2.1
>
>
> The 21.string.cons.cpp test fails with 16 assertions on 64-bit MSVC in 
> optimized builds.
> The reason is the bad codegeneration in __rw_new_capacity() inlined in 
> std::basic_string ctors. Because of this bug the __rw_new_capacity(0, const 
> std::basic_string<> *) returns value greater that size_max() and ctor throws 
> exception.
> The temporary workaround might be definition of the __rw_new_capacity() as 
> __declspec (noinline).
> --
> Index: include/string
> ===
> --- include/string(revision 593511)
> +++ include/string(working copy)
> @@ -1528,8 +1528,13 @@
>  // more specialized version for basic_string<>; may be further specialized  
> // in user code for example on a user-defined allocator
>  
> +#if !defined (_WIN64) || !defined (_MSC_VER) || defined
> (__INTEL_COMPILER)
>  template   inline 
> _RWSTD_STRING_SIZE_TYPE
> +#else// _WIN64 && _MSC_VER && !__INTEL_COMPILER
> +template  __declspec 
> +(noinline) _RWSTD_STRING_SIZE_TYPE
> +#endif   // !_WIN64 || !_MSC_VER || __INTEL_COMPILER
>  __rw_new_capacity (_RWSTD_STRING_SIZE_TYPE __size,
> const _STD::basic_string<_CharT, _Traits,
> _Allocator>*)
>  {
> --

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



[jira] Closed: (STDCXX-663) [MSVC] MSVC declares non-standard prototype of the wcstok()

2007-12-05 Thread Farid Zaripov (JIRA)

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

Farid Zaripov closed STDCXX-663.



> [MSVC] MSVC declares non-standard prototype of the wcstok()
> ---
>
> Key: STDCXX-663
> URL: https://issues.apache.org/jira/browse/STDCXX-663
> Project: C++ Standard Library
>  Issue Type: Bug
>  Components: External
> Environment: MSVC, ICC/Windows
>Reporter: Farid Zaripov
>Assignee: Farid Zaripov
>Priority: Minor
> Fix For: 4.2.1
>
> Attachments: wcstok.patch
>
>
> The MSVC declares non-standard prototype of the wcstok():
> wchar.h:
> ---
> _CRTIMP wchar_t * __cdecl wcstok(wchar_t *, const wchar_t *);
> ---
> Since configuration script doesn't check the correct prototype and checks 
> only for name, the config.h file contains _RWSTD_NO_WCSTOK macro undefined.
> The MSVC 8 and higher declares wcstok_s() which is identical to standard 
> wcstok():
> wchar.h:
> ---
> _CRTIMP_ALTERNATIVE __checkReturn wchar_t * __cdecl wcstok_s(__inout_z_opt 
> wchar_t * _Str, __in_z const wchar_t * _Delim, __deref_inout_z_opt wchar_t ** 
> _Context);
> ---
> I think we need to #define _RWSTD_NO_WCSTOK macro in 
> include/rw/_config_msvcrt.h and add inline wcstok() invoking wcstok_s() in 
> include /ansi/cwchar.

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



[jira] Resolved: (STDCXX-663) [MSVC] MSVC declares non-standard prototype of the wcstok()

2007-12-05 Thread Farid Zaripov (JIRA)

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

Farid Zaripov resolved STDCXX-663.
--

Resolution: Fixed

Fixed thus: http://svn.apache.org/viewvc?view=rev&revision=597411
Merged in thunk thus: http://svn.apache.org/viewvc?view=rev&revision=597412

> [MSVC] MSVC declares non-standard prototype of the wcstok()
> ---
>
> Key: STDCXX-663
> URL: https://issues.apache.org/jira/browse/STDCXX-663
> Project: C++ Standard Library
>  Issue Type: Bug
>  Components: External
> Environment: MSVC, ICC/Windows
>Reporter: Farid Zaripov
>Assignee: Farid Zaripov
>Priority: Minor
> Fix For: 4.2.1
>
> Attachments: wcstok.patch
>
>
> The MSVC declares non-standard prototype of the wcstok():
> wchar.h:
> ---
> _CRTIMP wchar_t * __cdecl wcstok(wchar_t *, const wchar_t *);
> ---
> Since configuration script doesn't check the correct prototype and checks 
> only for name, the config.h file contains _RWSTD_NO_WCSTOK macro undefined.
> The MSVC 8 and higher declares wcstok_s() which is identical to standard 
> wcstok():
> wchar.h:
> ---
> _CRTIMP_ALTERNATIVE __checkReturn wchar_t * __cdecl wcstok_s(__inout_z_opt 
> wchar_t * _Str, __in_z const wchar_t * _Delim, __deref_inout_z_opt wchar_t ** 
> _Context);
> ---
> I think we need to #define _RWSTD_NO_WCSTOK macro in 
> include/rw/_config_msvcrt.h and add inline wcstok() invoking wcstok_s() in 
> include /ansi/cwchar.

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