[jira] Created: (STDCXX-474) std::mask_array fails to privatize get_array member

2007-07-08 Thread Martin Sebor (JIRA)
std::mask_array fails to privatize get_array member
---

 Key: STDCXX-474
 URL: https://issues.apache.org/jira/browse/STDCXX-474
 Project: C++ Standard Library
  Issue Type: Bug
  Components: 26. Numerics
Affects Versions: 4.1.2, 4.1.3
 Environment: all
Reporter: Martin Sebor
Assignee: Martin Sebor
Priority: Minor
 Fix For: 4.2


The well-formed program below fails to compile with stdcxx 4.1.3 because the 
user-defined name get_array is being used by std::mask_array:

$ cat t.cpp  make t
#define get_array()   error

#include valarray

int main ()
{
std::valarrayint v;
}
gcc -c -I/home/sebor/stdcxx-4.1.3/include/ansi -D_RWSTDDEBUG
-D_RWSTD_USE_CONFIG -I/build/sebor/stdcxx-4.1.3-gcc-4.1.1-11S/include 
-I/home/sebor/stdcxx-4.1.3/include -I/home/sebor/stdcxx-4.1.3/examples/include  
-pedantic -nostdinc++ -g  -m64 -Wall -W -Wcast-qual -Winline -Wshadow 
-Wwrite-strings -Wno-long-long -Wcast-align  t.cpp
/home/sebor/stdcxx-4.1.3/include/valarray:1525: error: expected unqualified-id 
before string constant
/home/sebor/stdcxx-4.1.3/include/valarray: In copy constructor 
'std::mask_array_TypeT::mask_array(const std::mask_array_TypeT)':
/home/sebor/stdcxx-4.1.3/include/valarray:1513: error: expected unqualified-id 
before string constant
/home/sebor/stdcxx-4.1.3/include/valarray: At global scope:
/home/sebor/stdcxx-4.1.3/include/valarray:1633: error: expected unqualified-id 
before string constant
/home/sebor/stdcxx-4.1.3/include/valarray: In copy constructor 
'std::indirect_array_TypeT::indirect_array(const 
std::indirect_array_TypeT)':
/home/sebor/stdcxx-4.1.3/include/valarray:1620: error: expected unqualified-id 
before string constant
make: *** [t.o] Error 1


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



[jira] Created: (STDCXX-475) [Intel C++ 10.0.025/Linux] ICE in 18.exception.cpp

2007-07-08 Thread Martin Sebor (JIRA)
[Intel C++ 10.0.025/Linux] ICE in 18.exception.cpp
--

 Key: STDCXX-475
 URL: https://issues.apache.org/jira/browse/STDCXX-475
 Project: C++ Standard Library
  Issue Type: Bug
  Components: Tests
 Environment: Intel C++ 10.0.025/Linux
Reporter: Martin Sebor


The test 18.exception.cpp fails to compile with Intel C++ 10.0.025 with the 
following internal compiler error:

icc -c -I/home/sebor/stdcxx/include/ansi -D_RWSTDDEBUG   -D_REENTRANT 
-I/home/sebor/stdcxx/include -I/build/sebor/stdcxx-icc-10.0.025-15S/include 
-I/home/sebor/stdcxx/tests/include  -cxxlib-nostd -g   -w1   
/home/sebor/stdcxx/tests/support/18.exception.cpp
/home/sebor/stdcxx/tests/support/18.exception.cpp(806): internal error: 
assertion failed at: shared/edgcpfe/lower_il.c, line 7891

  struct C: A { };
 ^

compilation aborted for /home/sebor/stdcxx/tests/support/18.exception.cpp (code 
4)


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



[jira] Assigned: (STDCXX-395) Make _RWSTD_WCHAR_T_MIN/MAX names consistent with other *_MIN/MAX names.

2007-07-08 Thread Martin Sebor (JIRA)

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

Martin Sebor reassigned STDCXX-395:
---

Assignee: Martin Sebor

 Make _RWSTD_WCHAR_T_MIN/MAX names consistent with other *_MIN/MAX names.
 

 Key: STDCXX-395
 URL: https://issues.apache.org/jira/browse/STDCXX-395
 Project: C++ Standard Library
  Issue Type: Improvement
  Components: Configuration
Affects Versions: 4.1.3
Reporter: Eric Lemings
Assignee: Martin Sebor
Priority: Minor

 There are numerous MIN/MAX variables defined during configuration.
 #define _RWSTD_DBL_MAX  1.7976931348623157e+308
 #define _RWSTD_FLT_MAX  3.40282347e+38F
 #define _RWSTD_LDBL_MAX 1.18973149535723176502e+4932L
 #define _RWSTD_BOOL_MAX!0
 #define _RWSTD_CHAR_MAX'\x7f'
 #define _RWSTD_CHAR_MIN(-_RWSTD_CHAR_MAX - 1)
 #define _RWSTD_SCHAR_MAX   0x7f
 #define _RWSTD_SCHAR_MIN   (-_RWSTD_SCHAR_MAX - 1)
 #define _RWSTD_UCHAR_MAX   0xffU
 #define _RWSTD_SHRT_MAX0x7fff
 #define _RWSTD_SHRT_MIN(-_RWSTD_SHRT_MAX - 1)
 #define _RWSTD_USHRT_MAX   0xU
 #define _RWSTD_INT_MAX 0x7fff
 #define _RWSTD_INT_MIN (-_RWSTD_INT_MAX - 1)
 #define _RWSTD_UINT_MAX0xU
 #define _RWSTD_LONG_MAX0x7fffL
 #define _RWSTD_LONG_MIN(-_RWSTD_LONG_MAX - 1L)
 #define _RWSTD_ULONG_MAX   0xUL
 #define _RWSTD_LLONG_MAX   0x7fffLL
 #define _RWSTD_LLONG_MIN   (-_RWSTD_LLONG_MAX - 1LL)
 #define _RWSTD_ULLONG_MAX  0xULL
 #define _RWSTD_WCHAR_T_MAX 0x7fff
 #define _RWSTD_WCHAR_T_MIN  (-_RWSTD_WCHAR_T_MAX - 1)
 #define _RWSTD_MB_LEN_MAX16   /* libc value */
 #define _RWSTD_LC_MAX   _RWSTD_LC_IDENTIFICATION
 #define _RWSTD_SIZE_MAX   _RWSTD_ULONG_MAX
 #define _RWSTD_PTRDIFF_MAX_RWSTD_LONG_MAX
 #define _RWSTD_RAND_MAX   2147483647
 #define _RWSTD_FOPEN_MAX  16
 #define _RWSTD_FILENAME_MAX   4096
 #define _RWSTD_TMP_MAX238328
 #define _RWSTD_SIG_ATOMIC_MAX _RWSTD_INT_MAX
 #define _RWSTD_WINT_MAX _RWSTD_UINT_MAX
 Several of the types covered by these variables use the C naming convention 
 by adding _t to the type name (e.g. sig_atomic_t, wint_t, ptrdiff_t) but 
 only _RWSTD_WCHAR_T_MIN/MAX has this suffix in the variable name itself.  
 Request making this variable name consistent with the others.  (Why?  It 
 makes GNU Automake build support that I'm working on much simpler.)

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



[jira] Closed: (STDCXX-395) Make _RWSTD_WCHAR_T_MIN/MAX names consistent with other *_MIN/MAX names.

2007-07-08 Thread Martin Sebor (JIRA)

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

Martin Sebor closed STDCXX-395.
---

   Resolution: Fixed
Fix Version/s: 4.2

Done.

 Make _RWSTD_WCHAR_T_MIN/MAX names consistent with other *_MIN/MAX names.
 

 Key: STDCXX-395
 URL: https://issues.apache.org/jira/browse/STDCXX-395
 Project: C++ Standard Library
  Issue Type: Improvement
  Components: Configuration
Affects Versions: 4.1.3
Reporter: Eric Lemings
Assignee: Martin Sebor
Priority: Minor
 Fix For: 4.2


 There are numerous MIN/MAX variables defined during configuration.
 #define _RWSTD_DBL_MAX  1.7976931348623157e+308
 #define _RWSTD_FLT_MAX  3.40282347e+38F
 #define _RWSTD_LDBL_MAX 1.18973149535723176502e+4932L
 #define _RWSTD_BOOL_MAX!0
 #define _RWSTD_CHAR_MAX'\x7f'
 #define _RWSTD_CHAR_MIN(-_RWSTD_CHAR_MAX - 1)
 #define _RWSTD_SCHAR_MAX   0x7f
 #define _RWSTD_SCHAR_MIN   (-_RWSTD_SCHAR_MAX - 1)
 #define _RWSTD_UCHAR_MAX   0xffU
 #define _RWSTD_SHRT_MAX0x7fff
 #define _RWSTD_SHRT_MIN(-_RWSTD_SHRT_MAX - 1)
 #define _RWSTD_USHRT_MAX   0xU
 #define _RWSTD_INT_MAX 0x7fff
 #define _RWSTD_INT_MIN (-_RWSTD_INT_MAX - 1)
 #define _RWSTD_UINT_MAX0xU
 #define _RWSTD_LONG_MAX0x7fffL
 #define _RWSTD_LONG_MIN(-_RWSTD_LONG_MAX - 1L)
 #define _RWSTD_ULONG_MAX   0xUL
 #define _RWSTD_LLONG_MAX   0x7fffLL
 #define _RWSTD_LLONG_MIN   (-_RWSTD_LLONG_MAX - 1LL)
 #define _RWSTD_ULLONG_MAX  0xULL
 #define _RWSTD_WCHAR_T_MAX 0x7fff
 #define _RWSTD_WCHAR_T_MIN  (-_RWSTD_WCHAR_T_MAX - 1)
 #define _RWSTD_MB_LEN_MAX16   /* libc value */
 #define _RWSTD_LC_MAX   _RWSTD_LC_IDENTIFICATION
 #define _RWSTD_SIZE_MAX   _RWSTD_ULONG_MAX
 #define _RWSTD_PTRDIFF_MAX_RWSTD_LONG_MAX
 #define _RWSTD_RAND_MAX   2147483647
 #define _RWSTD_FOPEN_MAX  16
 #define _RWSTD_FILENAME_MAX   4096
 #define _RWSTD_TMP_MAX238328
 #define _RWSTD_SIG_ATOMIC_MAX _RWSTD_INT_MAX
 #define _RWSTD_WINT_MAX _RWSTD_UINT_MAX
 Several of the types covered by these variables use the C naming convention 
 by adding _t to the type name (e.g. sig_atomic_t, wint_t, ptrdiff_t) but 
 only _RWSTD_WCHAR_T_MIN/MAX has this suffix in the variable name itself.  
 Request making this variable name consistent with the others.  (Why?  It 
 makes GNU Automake build support that I'm working on much simpler.)

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



[jira] Created: (STDCXX-476) [Intel Thread Checker 3.1] calls std::terminate() after throwing exception of class type

2007-07-08 Thread Martin Sebor (JIRA)
[Intel Thread Checker 3.1] calls std::terminate() after throwing exception of 
class type


 Key: STDCXX-476
 URL: https://issues.apache.org/jira/browse/STDCXX-476
 Project: C++ Standard Library
  Issue Type: Bug
  Components: External
 Environment: Intel Therad Checker 3.1
Reporter: Martin Sebor


Running a program that throws and catches an exception of user-defined type in 
a thread function through the thread checker causes a call to terminate():

 cat t.cpp  make t  icc -v  tcheck_cl t
#include pthread.h
#include stdio.h

struct S { };

int loop;

extern C void* thread_proc (void*)
{
for (loop = 0; loop != 2; ++loop) {
printf (%d\n, loop);
try { throw S (); }
catch (...) { }
}

return 0;
}


int main ()
{
pthread_t tid;

if (pthread_create (tid, 0, thread_proc, 0))
return 1;

pthread_join (tid, 0);
}
icc -c -I/home/sebor/stdcxx/include/ansi -D_RWSTDDEBUG   -D_REENTRANT 
-I/home/sebor/stdcxx/include -I/build/sebor/stdcxx-icc-10.0.025-15S/include 
-I/home/sebor/stdcxx/examples/include  -cxxlib-nostd -g   -w1   t.cpp
icc t.o -o t -cxxlib-nostd  -lpthread  
-L/build/sebor/stdcxx-icc-10.0.025-15S/lib  -lstd15S -lcxaguard -lsupc++ -lm 
Version 10.0 
Intel(R) Thread Checker 3.1 command line instrumentation driver (24400)
Copyright (c) 2007 Intel Corporation. All rights reserved.
Building project
Instrumenting
 11% t   ( All Functions ):..

Running:  /build/sebor/stdcxx-icc-10.0.025-15S/examples/t 

0
terminate called after throwing an instance of 'S'

Application finished

___
|ID|Short Des|Severit|Co|Context|Description   |1st Ac|2nd Acc|
|  |cription |y Name |un|[Best] |  |cess[B|ess[Bes|
|  | |   |t |   |  |est]  |t] |
___
|1 |Thread te|Informa|1 |Whole  |Thread termination at |t.cpp|t.cpp|
|  |rmination|tion   |  |Program|t.cpp:24 - includes stack   |:24  |:24|
|  | |   |  |1  |allocation of 10.004 MB and   |  |   |
|  | |   |  |   |use of 7.281 KB   |  |   |
___
|2 |Thread te|Informa|1 |Whole  |Thread termination at |t.cpp|t.cpp|
|  |rmination|tion   |  |Program|t.cpp:21 - includes stack   |:21  |:21|
|  | |   |  |2  |allocation of 10 MB and use of|  |   |
|  | |   |  |   |4.938 KB  |  |   |
___



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



[jira] Updated: (STDCXX-476) [Intel Thread Checker 3.1] calls std::terminate() after throwing exception of class type

2007-07-08 Thread Martin Sebor (JIRA)

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

Martin Sebor updated STDCXX-476:


Environment: Intel Thread Checker 3.1  (was: Intel Therad Checker 3.1)

 [Intel Thread Checker 3.1] calls std::terminate() after throwing exception of 
 class type
 

 Key: STDCXX-476
 URL: https://issues.apache.org/jira/browse/STDCXX-476
 Project: C++ Standard Library
  Issue Type: Bug
  Components: External
 Environment: Intel Thread Checker 3.1
Reporter: Martin Sebor

 Running a program that throws and catches an exception of user-defined type 
 in a thread function through the thread checker causes a call to terminate():
  cat t.cpp  make t  icc -v  tcheck_cl t
 #include pthread.h
 #include stdio.h
 struct S { };
 int loop;
 extern C void* thread_proc (void*)
 {
 for (loop = 0; loop != 2; ++loop) {
 printf (%d\n, loop);
 try { throw S (); }
 catch (...) { }
 }
 return 0;
 }
 int main ()
 {
 pthread_t tid;
 if (pthread_create (tid, 0, thread_proc, 0))
 return 1;
 pthread_join (tid, 0);
 }
 icc -c -I/home/sebor/stdcxx/include/ansi -D_RWSTDDEBUG   -D_REENTRANT 
 -I/home/sebor/stdcxx/include -I/build/sebor/stdcxx-icc-10.0.025-15S/include 
 -I/home/sebor/stdcxx/examples/include  -cxxlib-nostd -g   -w1   t.cpp
 icc t.o -o t -cxxlib-nostd  -lpthread  
 -L/build/sebor/stdcxx-icc-10.0.025-15S/lib  -lstd15S -lcxaguard -lsupc++ -lm 
 Version 10.0 
 Intel(R) Thread Checker 3.1 command line instrumentation driver (24400)
 Copyright (c) 2007 Intel Corporation. All rights reserved.
 Building project
 Instrumenting
  11% t   ( All Functions ):..
 Running:  /build/sebor/stdcxx-icc-10.0.025-15S/examples/t 
 0
 terminate called after throwing an instance of 'S'
 Application finished
 ___
 |ID|Short Des|Severit|Co|Context|Description   |1st Ac|2nd 
 Acc|
 |  |cription |y Name |un|[Best] |  
 |cess[B|ess[Bes|
 |  | |   |t |   |  |est]  |t] 
 |
 ___
 |1 |Thread te|Informa|1 |Whole  |Thread termination at 
 |t.cpp|t.cpp|
 |  |rmination|tion   |  |Program|t.cpp:24 - includes stack   |:24  |:24
 |
 |  | |   |  |1  |allocation of 10.004 MB and   |  |   
 |
 |  | |   |  |   |use of 7.281 KB   |  |   
 |
 ___
 |2 |Thread te|Informa|1 |Whole  |Thread termination at 
 |t.cpp|t.cpp|
 |  |rmination|tion   |  |Program|t.cpp:21 - includes stack   |:21  |:21
 |
 |  | |   |  |2  |allocation of 10 MB and use of|  |   
 |
 |  | |   |  |   |4.938 KB  |  |   
 |
 ___

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



[jira] Commented: (STDCXX-476) [Intel Thread Checker 3.1] calls std::terminate() after throwing exception of class type

2007-07-08 Thread Martin Sebor (JIRA)

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

Martin Sebor commented on STDCXX-476:
-

A simplified test case is below. Compiling without the -cxxlib-nostd option 
lets the program run successfully to completion. The same thing happens when 
using gcc vs g++ to compile the program (compiling with gcc and linking with 
-lsupc++ causes a call to terminate() while using g++ does not):

$ cat t.cpp  icc --version  icc -cxxlib-nostd -pthread t.cpp -lcxaguard 
-lsupc++  tcheck_cl a.out
#include pthread.h
#include stdio.h

int loop;

extern C void* thread_proc (void*)
{
for (loop = 0; loop != 2; ++loop) {
printf (%d\n, loop);
try { throw 0; }
catch (...) { }
}

return 0;
}


int main ()
{
pthread_t tid;

if (pthread_create (tid, 0, thread_proc, 0))
return 1;

pthread_join (tid, 0);
}
icc (ICC) 10.0 20070613
Copyright (C) 1985-2007 Intel Corporation.  All rights reserved.

Intel(R) Thread Checker 3.1 command line instrumentation driver (24400)
Copyright (c) 2007 Intel Corporation. All rights reserved.
Building project
Instrumenting
 12% a.out   ( All Functions ):..

Running:  /build/sebor/stdcxx-icc-10.0.025-15S/examples/a.out 

0
terminate called after throwing an instance of 'int'

Application finished

___
|ID|Short Des|Severi|Co|Context[|Description  |1st Acc|2nd Acc|
|  |cription |ty|un|Best]   | |ess[Bes|ess[Bes|
|  | |Name  |t || |t] |t] |
___
|1 |Thread te|Inform|1 |Whole   |Thread termination at [a.out,|[a.out,|[a.out,|
|  |rmination|ation |  |Program1|0x1c85] - includes stack |0x1c85]|0x1c85]|
|  | |  |  ||allocation of 10.004 MB and  |   |   |
|  | |  |  ||use of 7.203 KB  |   |   |
___
|2 |Thread te|Inform|1 |Whole   |Thread termination at [a.out,|[a.out,|[a.out,|
|  |rmination|ation |  |Program2|0x1c58] - includes stack |0x1c58]|0x1c58]|
|  | |  |  ||allocation of 10 MB and use  |   |   |
|  | |  |  ||of 3.453 KB  |   |   |
___



 [Intel Thread Checker 3.1] calls std::terminate() after throwing exception of 
 class type
 

 Key: STDCXX-476
 URL: https://issues.apache.org/jira/browse/STDCXX-476
 Project: C++ Standard Library
  Issue Type: Bug
  Components: External
 Environment: Intel Thread Checker 3.1
Reporter: Martin Sebor

 Running a program that throws and catches an exception of user-defined type 
 in a thread function through the thread checker causes a call to terminate():
  cat t.cpp  make t  icc -v  tcheck_cl t
 #include pthread.h
 #include stdio.h
 struct S { };
 int loop;
 extern C void* thread_proc (void*)
 {
 for (loop = 0; loop != 2; ++loop) {
 printf (%d\n, loop);
 try { throw S (); }
 catch (...) { }
 }
 return 0;
 }
 int main ()
 {
 pthread_t tid;
 if (pthread_create (tid, 0, thread_proc, 0))
 return 1;
 pthread_join (tid, 0);
 }
 icc -c -I/home/sebor/stdcxx/include/ansi -D_RWSTDDEBUG   -D_REENTRANT 
 -I/home/sebor/stdcxx/include -I/build/sebor/stdcxx-icc-10.0.025-15S/include 
 -I/home/sebor/stdcxx/examples/include  -cxxlib-nostd -g   -w1   t.cpp
 icc t.o -o t -cxxlib-nostd  -lpthread  
 -L/build/sebor/stdcxx-icc-10.0.025-15S/lib  -lstd15S -lcxaguard -lsupc++ -lm 
 Version 10.0 
 Intel(R) Thread Checker 3.1 command line instrumentation driver (24400)
 Copyright (c) 2007 Intel Corporation. All rights reserved.
 Building project
 Instrumenting
  11% t   ( All Functions ):..
 Running:  /build/sebor/stdcxx-icc-10.0.025-15S/examples/t 
 0
 terminate called after throwing an instance of 'S'
 Application finished
 ___
 |ID|Short Des|Severit|Co|Context|Description   |1st Ac|2nd 
 Acc|
 |  |cription |y Name |un|[Best] |  
 |cess[B|ess[Bes|
 |  | |   |t |   |  |est]  |t] 
 |
 ___
 |1 |Thread te|Informa|1 |Whole  |Thread termination at 
 |t.cpp|t.cpp|
 |  |rmination|tion   |  |Program|t.cpp:24 - includes stack   |:24  |:24
 |
 |  | |   |  |1  |allocation 

[jira] Created: (STDCXX-477) SIGABRT calling std::locale::operator==() from multiple threads in debug configurations

2007-07-08 Thread Martin Sebor (JIRA)
SIGABRT calling std::locale::operator==() from multiple threads in debug 
configurations
---

 Key: STDCXX-477
 URL: https://issues.apache.org/jira/browse/STDCXX-477
 Project: C++ Standard Library
  Issue Type: Bug
  Components: 22. Localization
Reporter: Martin Sebor


The 22.locale.cons.mt test causes a SIGABRT in std::locale::operator==() but 
only in debug builds:

$ ./22.locale.cons.mt --nloops=1
# INFO (S1) (10 lines):
# TEXT: 
# COMPILER: Intel C++, __INTEL_COMPILER = 1000, __INTEL_COMPILER_BUILD_DATE = 
20070613, __EDG_VERSION__ = 308
# ENVIRONMENT: x86_64/LP64 running linux-elf (Fedora Core release 6 (Zod)) with 
glibc 2.5
# FILE: 22.locale.cons.mt.cpp
# COMPILED: Jul  8 2007, 15:54:33
# COMMENT: thread safety


# CLAUSE: lib.locale.cons

# NOTE (S2) (5 lines):
# TEXT: executing locale -a  /tmp/tmpfile-n8bvda
# CLAUSE: lib.locale.cons
# FILE: process.cpp
# LINE: 274

# INFO (S1) (3 lines):
# TEXT: testing std::locale ctors with 2 threads, 1 iterations each, in 32 
locales { aa_DJ aa_DJ.iso88591 aa_DJ.utf8 aa_ER [EMAIL PROTECTED] 
aa_ER.utf8 [EMAIL PROTECTED] aa_ET aa_ET.utf8 af_ZA af_ZA.iso88591 
af_ZA.utf8 am_ET am_ET.utf8 an_ES an_ES.iso885915 an_ES.utf8 
ar_AE ar_AE.iso88596 ar_AE.utf8 ar_BH ar_BH.iso88596 ar_BH.utf8 
ar_DZ ar_DZ.iso88596 ar_DZ.utf8 ar_EG ar_EG.iso88596 ar_EG.utf8 
ar_IN ar_IN.utf8 ar_IQ }
# CLAUSE: lib.locale.cons

/home/sebor/stdcxx/src/locale_eq.cpp:73: bool std::locale::operator==(const 
std::locale ) const: Assertion '_C_body-_C_std_facet_bits != _C_body-_C_all 
|| rhs._C_body-_C_std_facet_bits != _C_body-_C_all || 
_C_body-_C_byname_facet_bits != _C_body-_C_all || 
rhs._C_body-_C_byname_facet_bits != _C_body-_C_all' failed.
./22.locale.cons.mt[0x45896e]
/home/sebor/stdcxx/src/locale_eq.cpp:73: bool std::locale::operator==(const 
std::locale ) const: Assertion '_C_body-_C_std_facet_bits != _C_body-_C_all 
|| rhs._C_body-_C_std_facet_bits != _C_body-_C_all || 
_C_body-_C_byname_facet_bits != _C_body-_C_all || 
rhs._C_body-_C_byname_facet_bits != _C_body-_C_all' failed.
./22.locale.cons.mt[0x45896e]
./22.locale.cons.mt[0x458a39]
./22.locale.cons.mt[0x46030f]
./22.locale.cons.mt[0x4412ec]
/lib64/libpthread.so.0[0x39fae06305]
/lib64/libc.so.6(clone+0x6d)[0x39f82cd50d]
Aborted


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



[jira] Assigned: (STDCXX-477) SIGABRT calling std::locale::operator==() in debug configurations

2007-07-08 Thread Martin Sebor (JIRA)

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

Martin Sebor reassigned STDCXX-477:
---

Assignee: Martin Sebor

 SIGABRT calling std::locale::operator==() in debug configurations
 -

 Key: STDCXX-477
 URL: https://issues.apache.org/jira/browse/STDCXX-477
 Project: C++ Standard Library
  Issue Type: Bug
  Components: 22. Localization
Affects Versions: 4.1.3, 4.1.2
Reporter: Martin Sebor
Assignee: Martin Sebor

 The 22.locale.cons.mt test causes a SIGABRT in std::locale::operator==() but 
 only in debug builds:
 $ ./22.locale.cons.mt --nloops=1
 # INFO (S1) (10 lines):
 # TEXT: 
 # COMPILER: Intel C++, __INTEL_COMPILER = 1000, __INTEL_COMPILER_BUILD_DATE = 
 20070613, __EDG_VERSION__ = 308
 # ENVIRONMENT: x86_64/LP64 running linux-elf (Fedora Core release 6 (Zod)) 
 with glibc 2.5
 # FILE: 22.locale.cons.mt.cpp
 # COMPILED: Jul  8 2007, 15:54:33
 # COMMENT: thread safety
 
 # CLAUSE: lib.locale.cons
 # NOTE (S2) (5 lines):
 # TEXT: executing locale -a  /tmp/tmpfile-n8bvda
 # CLAUSE: lib.locale.cons
 # FILE: process.cpp
 # LINE: 274
 # INFO (S1) (3 lines):
 # TEXT: testing std::locale ctors with 2 threads, 1 iterations each, in 
 32 locales { aa_DJ aa_DJ.iso88591 aa_DJ.utf8 aa_ER [EMAIL 
 PROTECTED] aa_ER.utf8 [EMAIL PROTECTED] aa_ET aa_ET.utf8 af_ZA 
 af_ZA.iso88591 af_ZA.utf8 am_ET am_ET.utf8 an_ES an_ES.iso885915 
 an_ES.utf8 ar_AE ar_AE.iso88596 ar_AE.utf8 ar_BH ar_BH.iso88596 
 ar_BH.utf8 ar_DZ ar_DZ.iso88596 ar_DZ.utf8 ar_EG ar_EG.iso88596 
 ar_EG.utf8 ar_IN ar_IN.utf8 ar_IQ }
 # CLAUSE: lib.locale.cons
 /home/sebor/stdcxx/src/locale_eq.cpp:73: bool std::locale::operator==(const 
 std::locale ) const: Assertion '_C_body-_C_std_facet_bits != 
 _C_body-_C_all || rhs._C_body-_C_std_facet_bits != _C_body-_C_all || 
 _C_body-_C_byname_facet_bits != _C_body-_C_all || 
 rhs._C_body-_C_byname_facet_bits != _C_body-_C_all' failed.
 ./22.locale.cons.mt[0x45896e]
 /home/sebor/stdcxx/src/locale_eq.cpp:73: bool std::locale::operator==(const 
 std::locale ) const: Assertion '_C_body-_C_std_facet_bits != 
 _C_body-_C_all || rhs._C_body-_C_std_facet_bits != _C_body-_C_all || 
 _C_body-_C_byname_facet_bits != _C_body-_C_all || 
 rhs._C_body-_C_byname_facet_bits != _C_body-_C_all' failed.
 ./22.locale.cons.mt[0x45896e]
 ./22.locale.cons.mt[0x458a39]
 ./22.locale.cons.mt[0x46030f]
 ./22.locale.cons.mt[0x4412ec]
 /lib64/libpthread.so.0[0x39fae06305]
 /lib64/libc.so.6(clone+0x6d)[0x39f82cd50d]
 Aborted

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



[jira] Updated: (STDCXX-477) SIGABRT calling std::locale::operator==() in debug configurations

2007-07-08 Thread Martin Sebor (JIRA)

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

Martin Sebor updated STDCXX-477:


Affects Version/s: 4.1.3
   4.1.2
  Summary: SIGABRT calling std::locale::operator==() in debug 
configurations  (was: SIGABRT calling std::locale::operator==() from multiple 
threads in debug configurations)

The bug goes back at least as far as 4.1.2.

 SIGABRT calling std::locale::operator==() in debug configurations
 -

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

 The 22.locale.cons.mt test causes a SIGABRT in std::locale::operator==() but 
 only in debug builds:
 $ ./22.locale.cons.mt --nloops=1
 # INFO (S1) (10 lines):
 # TEXT: 
 # COMPILER: Intel C++, __INTEL_COMPILER = 1000, __INTEL_COMPILER_BUILD_DATE = 
 20070613, __EDG_VERSION__ = 308
 # ENVIRONMENT: x86_64/LP64 running linux-elf (Fedora Core release 6 (Zod)) 
 with glibc 2.5
 # FILE: 22.locale.cons.mt.cpp
 # COMPILED: Jul  8 2007, 15:54:33
 # COMMENT: thread safety
 
 # CLAUSE: lib.locale.cons
 # NOTE (S2) (5 lines):
 # TEXT: executing locale -a  /tmp/tmpfile-n8bvda
 # CLAUSE: lib.locale.cons
 # FILE: process.cpp
 # LINE: 274
 # INFO (S1) (3 lines):
 # TEXT: testing std::locale ctors with 2 threads, 1 iterations each, in 
 32 locales { aa_DJ aa_DJ.iso88591 aa_DJ.utf8 aa_ER [EMAIL 
 PROTECTED] aa_ER.utf8 [EMAIL PROTECTED] aa_ET aa_ET.utf8 af_ZA 
 af_ZA.iso88591 af_ZA.utf8 am_ET am_ET.utf8 an_ES an_ES.iso885915 
 an_ES.utf8 ar_AE ar_AE.iso88596 ar_AE.utf8 ar_BH ar_BH.iso88596 
 ar_BH.utf8 ar_DZ ar_DZ.iso88596 ar_DZ.utf8 ar_EG ar_EG.iso88596 
 ar_EG.utf8 ar_IN ar_IN.utf8 ar_IQ }
 # CLAUSE: lib.locale.cons
 /home/sebor/stdcxx/src/locale_eq.cpp:73: bool std::locale::operator==(const 
 std::locale ) const: Assertion '_C_body-_C_std_facet_bits != 
 _C_body-_C_all || rhs._C_body-_C_std_facet_bits != _C_body-_C_all || 
 _C_body-_C_byname_facet_bits != _C_body-_C_all || 
 rhs._C_body-_C_byname_facet_bits != _C_body-_C_all' failed.
 ./22.locale.cons.mt[0x45896e]
 /home/sebor/stdcxx/src/locale_eq.cpp:73: bool std::locale::operator==(const 
 std::locale ) const: Assertion '_C_body-_C_std_facet_bits != 
 _C_body-_C_all || rhs._C_body-_C_std_facet_bits != _C_body-_C_all || 
 _C_body-_C_byname_facet_bits != _C_body-_C_all || 
 rhs._C_body-_C_byname_facet_bits != _C_body-_C_all' failed.
 ./22.locale.cons.mt[0x45896e]
 ./22.locale.cons.mt[0x458a39]
 ./22.locale.cons.mt[0x46030f]
 ./22.locale.cons.mt[0x4412ec]
 /lib64/libpthread.so.0[0x39fae06305]
 /lib64/libc.so.6(clone+0x6d)[0x39f82cd50d]
 Aborted

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



[jira] Commented: (STDCXX-477) SIGABRT calling std::locale::operator==() from multiple threads in debug configurations

2007-07-08 Thread Martin Sebor (JIRA)

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

Martin Sebor commented on STDCXX-477:
-

This looks like an ordinary logic error in std::locale::operator==(const 
std::locale), not something thread-specific. A reduced test case is below:

$ cat t.cpp  make t  ./t
#include cassert
#include locale

int main ()
{
const std::locale en (en_US);
const std::locale es (es_ES);

assert (en != es);
}
icc -c -I/home/sebor/stdcxx/include/ansi -D_RWSTDDEBUG   -D_REENTRANT 
-I/home/sebor/stdcxx/include -I/build/sebor/stdcxx-icc-10.0.025-15S/include 
-I/home/sebor/stdcxx/examples/include  -cxxlib-nostd -g   -w1   t.cpp
icc t.o -o t -cxxlib-nostd  -lpthread  
-L/build/sebor/stdcxx-icc-10.0.025-15S/lib  -lstd15S -lcxaguard -lsupc++ -lm 
/home/sebor/stdcxx/src/locale_eq.cpp:73: bool std::locale::operator==(const 
std::locale ) const: Assertion '_C_body-_C_std_facet_bits != _C_body-_C_all 
|| rhs._C_body-_C_std_facet_bits != _C_body-_C_all || 
_C_body-_C_byname_facet_bits != _C_body-_C_all || 
rhs._C_body-_C_byname_facet_bits != _C_body-_C_all' failed.
./t[0x41f432]
./t[0x41f4fd]
./t[0x41ea57]
./t[0x40ad63]
./t[0x41b7b7]
/lib64/libc.so.6(__libc_start_main+0xf4)[0x39f821da44]
./t[0x41b685]
Aborted


 SIGABRT calling std::locale::operator==() from multiple threads in debug 
 configurations
 ---

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

 The 22.locale.cons.mt test causes a SIGABRT in std::locale::operator==() but 
 only in debug builds:
 $ ./22.locale.cons.mt --nloops=1
 # INFO (S1) (10 lines):
 # TEXT: 
 # COMPILER: Intel C++, __INTEL_COMPILER = 1000, __INTEL_COMPILER_BUILD_DATE = 
 20070613, __EDG_VERSION__ = 308
 # ENVIRONMENT: x86_64/LP64 running linux-elf (Fedora Core release 6 (Zod)) 
 with glibc 2.5
 # FILE: 22.locale.cons.mt.cpp
 # COMPILED: Jul  8 2007, 15:54:33
 # COMMENT: thread safety
 
 # CLAUSE: lib.locale.cons
 # NOTE (S2) (5 lines):
 # TEXT: executing locale -a  /tmp/tmpfile-n8bvda
 # CLAUSE: lib.locale.cons
 # FILE: process.cpp
 # LINE: 274
 # INFO (S1) (3 lines):
 # TEXT: testing std::locale ctors with 2 threads, 1 iterations each, in 
 32 locales { aa_DJ aa_DJ.iso88591 aa_DJ.utf8 aa_ER [EMAIL 
 PROTECTED] aa_ER.utf8 [EMAIL PROTECTED] aa_ET aa_ET.utf8 af_ZA 
 af_ZA.iso88591 af_ZA.utf8 am_ET am_ET.utf8 an_ES an_ES.iso885915 
 an_ES.utf8 ar_AE ar_AE.iso88596 ar_AE.utf8 ar_BH ar_BH.iso88596 
 ar_BH.utf8 ar_DZ ar_DZ.iso88596 ar_DZ.utf8 ar_EG ar_EG.iso88596 
 ar_EG.utf8 ar_IN ar_IN.utf8 ar_IQ }
 # CLAUSE: lib.locale.cons
 /home/sebor/stdcxx/src/locale_eq.cpp:73: bool std::locale::operator==(const 
 std::locale ) const: Assertion '_C_body-_C_std_facet_bits != 
 _C_body-_C_all || rhs._C_body-_C_std_facet_bits != _C_body-_C_all || 
 _C_body-_C_byname_facet_bits != _C_body-_C_all || 
 rhs._C_body-_C_byname_facet_bits != _C_body-_C_all' failed.
 ./22.locale.cons.mt[0x45896e]
 /home/sebor/stdcxx/src/locale_eq.cpp:73: bool std::locale::operator==(const 
 std::locale ) const: Assertion '_C_body-_C_std_facet_bits != 
 _C_body-_C_all || rhs._C_body-_C_std_facet_bits != _C_body-_C_all || 
 _C_body-_C_byname_facet_bits != _C_body-_C_all || 
 rhs._C_body-_C_byname_facet_bits != _C_body-_C_all' failed.
 ./22.locale.cons.mt[0x45896e]
 ./22.locale.cons.mt[0x458a39]
 ./22.locale.cons.mt[0x46030f]
 ./22.locale.cons.mt[0x4412ec]
 /lib64/libpthread.so.0[0x39fae06305]
 /lib64/libc.so.6(clone+0x6d)[0x39f82cd50d]
 Aborted

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



[jira] Created: (STDCXX-478) std::locale::operator==() inconsistent for locales with the same user-defined facets

2007-07-08 Thread Martin Sebor (JIRA)
std::locale::operator==() inconsistent for locales with the same user-defined 
facets


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


The program below is intended to take advantage of the stdcxx extension whereby 
two unnamed locales compare equal when they represent the exact same object 
(i.e., when all their facets are exactly same). The program passes the first 
assertion but aborts in the second one:

$ cat t.cpp  make t  ./t
#include cassert
#include cstdio
#include locale

struct A: std::num_putchar, char* { A (): std::num_putchar, char*(1) { } };
struct B: std::num_putchar, char* { B (): std::num_putchar, char*(1) { } };

int main ()
{
const std::locale en (en_US);

const A* const a = new A;
const B* const b = new B;

{
const std::locale usr1 (std::locale (en, a), b);
const std::locale usr2 (std::locale (en, a), b);

std::printf (\%s\ == \%s\\n,
 usr1.name ().c_str (), usr2.name ().c_str ());

   assert (usr1 == usr2);
}

{
const std::locale usr1 (std::locale (en, a), b);
const std::locale usr2 (std::locale (en, b), a);

std::printf (\%s\ == \%s\\n,
 usr1.name ().c_str (), usr2.name ().c_str ());

   assert (usr1 == usr2);
}
}
icc -c -I/home/sebor/stdcxx/include/ansi -D_RWSTDDEBUG   -D_REENTRANT 
-I/home/sebor/stdcxx/include -I/build/sebor/stdcxx-icc-10.0.025-15S/include 
-I/home/sebor/stdcxx/examples/include  -cxxlib-nostd -g   -w1   t.cpp
icc t.o -o t -cxxlib-nostd  -lpthread  
-L/build/sebor/stdcxx-icc-10.0.025-15S/lib  -lstd15S -lcxaguard -lsupc++ -lm 
* == *
* == *
t: t.cpp:32: int main(): Assertion `usr1 == usr2' failed.
Aborted


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



[jira] Assigned: (STDCXX-478) std::locale::operator==() inconsistent for locales with the same user-defined facets

2007-07-08 Thread Martin Sebor (JIRA)

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

Martin Sebor reassigned STDCXX-478:
---

Assignee: Martin Sebor

 std::locale::operator==() inconsistent for locales with the same user-defined 
 facets
 

 Key: STDCXX-478
 URL: https://issues.apache.org/jira/browse/STDCXX-478
 Project: C++ Standard Library
  Issue Type: Bug
  Components: 22. Localization
Affects Versions: 4.1.3, 4.1.2
Reporter: Martin Sebor
Assignee: Martin Sebor

 The program below is intended to take advantage of the stdcxx extension 
 whereby two unnamed locales compare equal when they represent the exact same 
 object (i.e., when all their facets are exactly same). The program passes the 
 first assertion but aborts in the second one:
 $ cat t.cpp  make t  ./t
 #include cassert
 #include cstdio
 #include locale
 struct A: std::num_putchar, char* { A (): std::num_putchar, char*(1) { } 
 };
 struct B: std::num_putchar, char* { B (): std::num_putchar, char*(1) { } 
 };
 int main ()
 {
 const std::locale en (en_US);
 const A* const a = new A;
 const B* const b = new B;
 {
 const std::locale usr1 (std::locale (en, a), b);
 const std::locale usr2 (std::locale (en, a), b);
 std::printf (\%s\ == \%s\\n,
  usr1.name ().c_str (), usr2.name ().c_str ());
assert (usr1 == usr2);
 }
 {
 const std::locale usr1 (std::locale (en, a), b);
 const std::locale usr2 (std::locale (en, b), a);
 std::printf (\%s\ == \%s\\n,
  usr1.name ().c_str (), usr2.name ().c_str ());
assert (usr1 == usr2);
 }
 }
 icc -c -I/home/sebor/stdcxx/include/ansi -D_RWSTDDEBUG   -D_REENTRANT 
 -I/home/sebor/stdcxx/include -I/build/sebor/stdcxx-icc-10.0.025-15S/include 
 -I/home/sebor/stdcxx/examples/include  -cxxlib-nostd -g   -w1   t.cpp
 icc t.o -o t -cxxlib-nostd  -lpthread  
 -L/build/sebor/stdcxx-icc-10.0.025-15S/lib  -lstd15S -lcxaguard -lsupc++ -lm 
 * == *
 * == *
 t: t.cpp:32: int main(): Assertion `usr1 == usr2' failed.
 Aborted

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



[jira] Closed: (STDCXX-477) SIGABRT calling std::locale::operator==() in debug configurations

2007-07-08 Thread Martin Sebor (JIRA)

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

Martin Sebor closed STDCXX-477.
---

   Resolution: Fixed
Fix Version/s: 4.2

Fixed. The test runs successfully to completion:

$ ./22.locale.cons.mt 
# INFO (S1) (10 lines):
# TEXT: 
# COMPILER: Intel C++, __INTEL_COMPILER = 1000, __INTEL_COMPILER_BUILD_DATE = 
20070613, __EDG_VERSION__ = 308
# ENVIRONMENT: x86_64/LP64 running linux-elf (Fedora Core release 6 (Zod)) with 
glibc 2.5
# FILE: 22.locale.cons.mt.cpp
# COMPILED: Jul  8 2007, 15:54:33
# COMMENT: thread safety


# CLAUSE: lib.locale.cons

# NOTE (S2) (5 lines):
# TEXT: executing locale -a  /tmp/tmpfile-2Qu0JD
# CLAUSE: lib.locale.cons
# FILE: process.cpp
# LINE: 274

# INFO (S1) (3 lines):
# TEXT: testing std::locale ctors with 2 threads, 2 iterations each, in 32 
locales { aa_DJ aa_DJ.iso88591 aa_DJ.utf8 aa_ER [EMAIL PROTECTED] 
aa_ER.utf8 [EMAIL PROTECTED] aa_ET aa_ET.utf8 af_ZA af_ZA.iso88591 
af_ZA.utf8 am_ET am_ET.utf8 an_ES an_ES.iso885915 an_ES.utf8 
ar_AE ar_AE.iso88596 ar_AE.utf8 ar_BH ar_BH.iso88596 ar_BH.utf8 
ar_DZ ar_DZ.iso88596 ar_DZ.utf8 ar_EG ar_EG.iso88596 ar_EG.utf8 
ar_IN ar_IN.utf8 ar_IQ }
# CLAUSE: lib.locale.cons

# +---+--+--+--+
# | DIAGNOSTIC|  ACTIVE  |   TOTAL  | INACTIVE |
# +---+--+--+--+
# | (S1) INFO |2 |2 |   0% |
# | (S2) NOTE |1 |1 |   0% |
# | (S8) ERROR|0 |1 | 100% |
# +---+--+--+--+


 SIGABRT calling std::locale::operator==() in debug configurations
 -

 Key: STDCXX-477
 URL: https://issues.apache.org/jira/browse/STDCXX-477
 Project: C++ Standard Library
  Issue Type: Bug
  Components: 22. Localization
Affects Versions: 4.1.3, 4.1.2
Reporter: Martin Sebor
Assignee: Martin Sebor
 Fix For: 4.2


 The 22.locale.cons.mt test causes a SIGABRT in std::locale::operator==() but 
 only in debug builds:
 $ ./22.locale.cons.mt --nloops=1
 # INFO (S1) (10 lines):
 # TEXT: 
 # COMPILER: Intel C++, __INTEL_COMPILER = 1000, __INTEL_COMPILER_BUILD_DATE = 
 20070613, __EDG_VERSION__ = 308
 # ENVIRONMENT: x86_64/LP64 running linux-elf (Fedora Core release 6 (Zod)) 
 with glibc 2.5
 # FILE: 22.locale.cons.mt.cpp
 # COMPILED: Jul  8 2007, 15:54:33
 # COMMENT: thread safety
 
 # CLAUSE: lib.locale.cons
 # NOTE (S2) (5 lines):
 # TEXT: executing locale -a  /tmp/tmpfile-n8bvda
 # CLAUSE: lib.locale.cons
 # FILE: process.cpp
 # LINE: 274
 # INFO (S1) (3 lines):
 # TEXT: testing std::locale ctors with 2 threads, 1 iterations each, in 
 32 locales { aa_DJ aa_DJ.iso88591 aa_DJ.utf8 aa_ER [EMAIL 
 PROTECTED] aa_ER.utf8 [EMAIL PROTECTED] aa_ET aa_ET.utf8 af_ZA 
 af_ZA.iso88591 af_ZA.utf8 am_ET am_ET.utf8 an_ES an_ES.iso885915 
 an_ES.utf8 ar_AE ar_AE.iso88596 ar_AE.utf8 ar_BH ar_BH.iso88596 
 ar_BH.utf8 ar_DZ ar_DZ.iso88596 ar_DZ.utf8 ar_EG ar_EG.iso88596 
 ar_EG.utf8 ar_IN ar_IN.utf8 ar_IQ }
 # CLAUSE: lib.locale.cons
 /home/sebor/stdcxx/src/locale_eq.cpp:73: bool std::locale::operator==(const 
 std::locale ) const: Assertion '_C_body-_C_std_facet_bits != 
 _C_body-_C_all || rhs._C_body-_C_std_facet_bits != _C_body-_C_all || 
 _C_body-_C_byname_facet_bits != _C_body-_C_all || 
 rhs._C_body-_C_byname_facet_bits != _C_body-_C_all' failed.
 ./22.locale.cons.mt[0x45896e]
 /home/sebor/stdcxx/src/locale_eq.cpp:73: bool std::locale::operator==(const 
 std::locale ) const: Assertion '_C_body-_C_std_facet_bits != 
 _C_body-_C_all || rhs._C_body-_C_std_facet_bits != _C_body-_C_all || 
 _C_body-_C_byname_facet_bits != _C_body-_C_all || 
 rhs._C_body-_C_byname_facet_bits != _C_body-_C_all' failed.
 ./22.locale.cons.mt[0x45896e]
 ./22.locale.cons.mt[0x458a39]
 ./22.locale.cons.mt[0x46030f]
 ./22.locale.cons.mt[0x4412ec]
 /lib64/libpthread.so.0[0x39fae06305]
 /lib64/libc.so.6(clone+0x6d)[0x39f82cd50d]
 Aborted

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



Re: 23.deque.special

2007-07-08 Thread Martin Sebor

Farid Zaripov wrote:

  Below is a part of the 23.deque.special test. These rw_assert's
fails because of deque::end() internal representation is dependent
on object and cannot be swapped.


I'm not sure I understand. Swapping two deques is required not to
invalidate any iterators, isn't that right? Are you suggesting to
loosen the test so as not to exercise this requirement?

Martin



  I think that this part should be replaced to just checking
deque.begin() == deque.end() after (and perhaps, before) the swap
operation.

--
typedef std::dequeT, std::allocatorT  MyDeque;
typedef typename MyDeque::iteratorIterator;

// create two empty deque objects
MyDeque empty [2];

// save their begin and end iterators before calling swap
const Iterator before [2][2] = {
{ empty [0].begin (), empty [0].end () },
{ empty [1].begin (), empty [1].end () }
};

// swap the two containers
empty [0].swap (empty [1]);

// get the new begin and end iterators
const Iterator after [2][2] = {
{ empty [0].begin (), empty [0].end () },
{ empty [1].begin (), empty [1].end () }
};

// verify that the iterators have not been invalidated
rw_assert (   before [0][0] == after [1][0] 
before [1][0] == after [0][0], 0, __LINE__, 
   deque%s().begin() not swapped, tname);

rw_assert (   before [0][1] == after [1][1] 
before [1][1] == after [0][1], 0, __LINE__, 
   deque%s().end() not swapped, tname);

--

Farid.





Re: Intel C++ build issues on Windows

2007-07-08 Thread Martin Sebor

Farid Zaripov wrote:

-Original Message-
From: Martin Sebor [mailto:[EMAIL PROTECTED] On Behalf Of Martin Sebor
Sent: Tuesday, July 03, 2007 7:08 AM
To: stdcxx-dev@incubator.apache.org
Subject: Re: Intel C++ build issues on Windows


  There are 3 types of popup's:
1) Dr.Watson window, appear on access violation or unhandled 
exception;

2) CRT asserts ;
3) Parameter validattion handler popup's.

  The 1) prevented in exec utility (SetErrorMode()). The 2) and 3) 
might be prevented by installing report hook and invalid parameter

handler:



http://www.mail-archive.com/stdcxx-dev@incubator.apache.org/msg03761.h

tm
l
Gotcha! I see I still owe you a response to your feedback in 
that thread. The solution in 2) and 3) will only take care of 
these popups in tests and not in examples or config tests (or 
locales?)


  Yes.

We'll also need a solution for those executables 
(but we can worry about that once we're done enhancing the 
test driver).


   We can install the similar handlers in each example, but I don't see
any 2) of 3) popups in examples at the moment.


But that could change. I'd like to come up with a reliable mechanism
that would let us prevent these popups in both tests and examples,
just in case. Perhaps a good place for it would be the examples.h
header, although preferably without relying on the coupling between
the header and the example sources:

  https://issues.apache.org/jira/browse/STDCXX-425

Martin


Re: STDCXX examples fails and reasons [MSVC]

2007-07-08 Thread Martin Sebor

Farid Zaripov wrote:

-Original Message-
From: Martin Sebor [mailto:[EMAIL PROTECTED] On Behalf Of Martin Sebor
Sent: Tuesday, July 03, 2007 7:38 AM
To: stdcxx-dev@incubator.apache.org
Subject: Re: STDCXX examples fails and reasons [MSVC]

  I have updated the windows build infrastructure to set TZ 
environment variable before run examples. The proposed 
similar changes 

in unix infrastructure below, but I'm not sure that is correct:

Why not? :)


  Because in windows infrastructure the TZ environment variable is set
for all examples only, but my patch in unix infrastructure sets TZ
variable for tests also.


Hmm. I don't suppose it should matter (our tests shouldn't be relying
on the variable being set to any specific value), but I see what you
mean. Is there a way to set the variable just for examples?

Martin



If you're not sure it's portable check out the TZ 
section in POSIX:

http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html

Any of MST7, MST07, MST+7, and MST+07 should work. If it 
works on the platforms you have access to (Linux and HP-UX) I 
say check it in and keep an eye out on failures for a few 
days to make sure it works everywhere else.


Farid.





[jira] Resolved: (STDCXX-478) std::locale::operator==() inconsistent for locales with the same user-defined facets

2007-07-08 Thread Martin Sebor (JIRA)

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

Martin Sebor resolved STDCXX-478.
-

   Resolution: Fixed
Fix Version/s: 4.2

Resolved. Will close after a regression test has been added to the test suite.

 std::locale::operator==() inconsistent for locales with the same user-defined 
 facets
 

 Key: STDCXX-478
 URL: https://issues.apache.org/jira/browse/STDCXX-478
 Project: C++ Standard Library
  Issue Type: Bug
  Components: 22. Localization
Affects Versions: 4.1.3, 4.1.2
Reporter: Martin Sebor
Assignee: Martin Sebor
 Fix For: 4.2


 The program below is intended to take advantage of the stdcxx extension 
 whereby two unnamed locales compare equal when they represent the exact same 
 object (i.e., when all their facets are exactly same). The program passes the 
 first assertion but aborts in the second one:
 $ cat t.cpp  make t  ./t
 #include cassert
 #include cstdio
 #include locale
 struct A: std::num_putchar, char* { A (): std::num_putchar, char*(1) { } 
 };
 struct B: std::num_putchar, char* { B (): std::num_putchar, char*(1) { } 
 };
 int main ()
 {
 const std::locale en (en_US);
 const A* const a = new A;
 const B* const b = new B;
 {
 const std::locale usr1 (std::locale (en, a), b);
 const std::locale usr2 (std::locale (en, a), b);
 std::printf (\%s\ == \%s\\n,
  usr1.name ().c_str (), usr2.name ().c_str ());
assert (usr1 == usr2);
 }
 {
 const std::locale usr1 (std::locale (en, a), b);
 const std::locale usr2 (std::locale (en, b), a);
 std::printf (\%s\ == \%s\\n,
  usr1.name ().c_str (), usr2.name ().c_str ());
assert (usr1 == usr2);
 }
 }
 icc -c -I/home/sebor/stdcxx/include/ansi -D_RWSTDDEBUG   -D_REENTRANT 
 -I/home/sebor/stdcxx/include -I/build/sebor/stdcxx-icc-10.0.025-15S/include 
 -I/home/sebor/stdcxx/examples/include  -cxxlib-nostd -g   -w1   t.cpp
 icc t.o -o t -cxxlib-nostd  -lpthread  
 -L/build/sebor/stdcxx-icc-10.0.025-15S/lib  -lstd15S -lcxaguard -lsupc++ -lm 
 * == *
 * == *
 t: t.cpp:32: int main(): Assertion `usr1 == usr2' failed.
 Aborted

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