stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Travis Vitek (JIRA)" <j...@apache.org>
Subject [jira] Updated: (STDCXX-436) [Linux] MB_LEN_MAX incorrect
Date Tue, 11 Sep 2007 18:53:32 GMT

     [ 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.


Mime
View raw message