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

Travis Vitek updated STDCXX-436:
--------------------------------

    Attachment: 18.limits.stdcxx-436.cpp

The attached patch includes a regression test for this issue. Unfortunately 
this test fails on windows due to what appears to be a configuration test error.

The LIMITS.cpp configuration test has a block that attempts to detect 
MB_LEN_MAX, and chooses an appropriate default if it is not found. On some 
platforms, it appears that limits.h is included indirectly via stdio.h. Because 
the test does not include limits.h explicitly MB_LEN_MAX is not always defined, 
and the 'appropriate' default value of 8 is incorrect on windows [at least on 
my 32-bit XP configuration].


> [Linux] MB_LEN_MAX incorrect
> ----------------------------
>
>                 Key: STDCXX-436
>                 URL: https://issues.apache.org/jira/browse/STDCXX-436
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: 18. Language Support
>    Affects Versions: 4.1.3
>         Environment: gcc version 4.1.1 20070105 (Red Hat 4.1.1-51)
>            Reporter: Mark Brown
>            Assignee: Travis Vitek
>            Priority: Critical
>             Fix For: 4.2
>
>         Attachments: 18.limits.stdcxx-436.cpp, LIMITS.cpp.patch, 
> stdcxx-436.patch
>
>
> On my Linux system MB_LEN_MAX is normally defined to 16 but when I use the 
> macro in a program compiled with stdcxx the macro evaluates to 1. The test 
> case goes like this:
> $ cat test.cpp && make CPPOPTS="-DGETCONF_MB_LEN_MAX=`getconf MB_LEN_MAX`" 
> test && ./test
> #include <assert.h>
> #include <limits.h>
> int main ()
> {
>     assert (MB_LEN_MAX == GETCONF_MB_LEN_MAX);
> }
> gcc -c -I/home/mbrown/stdcxx/include/ansi -D_RWSTDDEBUG    
> -I/home/mbrown/stdcxx/include -I/home/mbrown/stdcxx-gcc-4.1.1-11s/include 
> -I/home/mbrown/stdcxx/examples/include -DGETCONF_MB_LEN_MAX=16 -pedantic 
> -nostdinc++ -g  -W -Wall -Wcast-qual -Winline -Wshadow -Wwrite-strings 
> -Wno-long-long -Wcast-align   test.cpp
> gcc u.o -o u  -L/home/mbrown/stdcxx-gcc-4.1.1-11s/lib  -lstd11s -lsupc++ -lm 
> test: test.cpp:6: int main(): Assertion `1 == 16' failed.
> Aborted

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

Reply via email to