stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Sebor (JIRA)" <j...@apache.org>
Subject [jira] Commented: (STDCXX-673) [IBM XLC++ 9.0/AIX 5.3] 0.printf fails with assertions
Date Wed, 05 Dec 2007 06:09:43 GMT

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

Martin Sebor commented on STDCXX-673:
-------------------------------------

Hmm, you're right. According to the config header for XLC++ on AIX, char is an unsigned type
(see the script below -- I ran all the configurations to make sure the bug wasn't due to an
optimization or some such quirk). 

I suspect I might have wanted to avoid printing "signed" for chars (when char is a signed
type) to get the same result as the C99 implementation on the platform I was testing on for
compatibility with it (i.e., to make sure int8_t was a typedef the same fundamental type whether
it was defined by the C library on the OS or by stdcxx). Obviously, that won't work on platforms
where the C library defines int8_t to be a typedef for signed char even if char is signed,
but that's a separate issue.

In any case, I think the bug is in the condition on line 413. See if this patch works:

Index: etc/config/src/LIMITS.cpp
===================================================================
--- etc/config/src/LIMITS.cpp   (revision 601038)
+++ etc/config/src/LIMITS.cpp   (working copy)
@@ -410,7 +410,7 @@
             printf ("#define _RWSTD_INT%d_T %s          %s%s\n"         \
                     "#define _RWSTD_UINT%d_T %s         unsigned %s\n", \
                     width, width < 10 ? " " : "",                       \
-                    8 == width && '\xff' < 0 ? "signed " : "", type,    \
+                    8 == width && 0 < '\xff'? "signed " : "", type,    \
                     width, width < 10 ? " " : "", type);                \
     } while (0)

And here's the script (I think it's kinda nifty, btw.):

$ for n in 8 11 12 15; do \
    for s in a A d D s D; do \
        wget -O- -q http://people.apache.org/~sebor/stdcxx/results/aix-5.3-ppc-vacpp-9.0-$n$s-600031-cfg-h.gz.txt
\
        | gunzip -c 2>/dev/null | grep _RWSTD_CHAR_MAX; \
    done; \
done
#define _RWSTD_CHAR_MAX    '\xff'
#define _RWSTD_CHAR_MAX    '\xff'
#define _RWSTD_CHAR_MAX    '\xff'
#define _RWSTD_CHAR_MAX    '\xff'
#define _RWSTD_CHAR_MAX    '\xff'
#define _RWSTD_CHAR_MAX    '\xff'
#define _RWSTD_CHAR_MAX    '\xff'
#define _RWSTD_CHAR_MAX    '\xff'
#define _RWSTD_CHAR_MAX    '\xff'
#define _RWSTD_CHAR_MAX    '\xff'
#define _RWSTD_CHAR_MAX    '\xff'
#define _RWSTD_CHAR_MAX    '\xff'
#define _RWSTD_CHAR_MAX    '\xff'
#define _RWSTD_CHAR_MAX    '\xff'
#define _RWSTD_CHAR_MAX    '\xff'
#define _RWSTD_CHAR_MAX    '\xff'
#define _RWSTD_CHAR_MAX    '\xff'
#define _RWSTD_CHAR_MAX    '\xff'
#define _RWSTD_CHAR_MAX    '\xff'
#define _RWSTD_CHAR_MAX    '\xff'



> [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(ffffffffffff8d0,
ffffffffffff8d8, "foo", va_list) error: errno = 12: Not enough space
> /amd/devco/vitek/stdcxx/trunk/tests/src/printf.cpp:1022: rw_vasnprintf(ffffffffffff8d0,
ffffffffffff8d8, "foo", va_list) error: errno = 12: Not enough space
> /amd/devco/vitek/stdcxx/trunk/tests/src/printf.cpp:1022: rw_vasnprintf(ffffffffffff8d0,
ffffffffffff8d8, "foo", va_list) error: errno = 12: Not enough space
> /amd/devco/vitek/stdcxx/trunk/tests/src/printf.cpp:1022: rw_vasnprintf(ffffffffffff8d0,
ffffffffffff8d8, "foo", va_list) error: errno = 12: Not enough space
> /amd/devco/vitek/stdcxx/trunk/tests/src/printf.cpp:1022: rw_vasnprintf(ffffffffffff8d0,
ffffffffffff8d8, "bar", va_list) error: errno = 12: Not enough space
> /amd/devco/vitek/stdcxx/trunk/tests/src/printf.cpp:1022: rw_vasnprintf(ffffffffffff8d0,
ffffffffffff8d8, "bar", va_list) error: errno = 12: Not enough space
> /amd/devco/vitek/stdcxx/trunk/tests/src/printf.cpp:1022: rw_vasnprintf(ffffffffffff8d0,
ffffffffffff8d8, "bar", va_list) error: errno = 12: Not enough space
> /amd/devco/vitek/stdcxx/trunk/tests/src/printf.cpp:1022: rw_vasnprintf(ffffffffffff8d0,
ffffffffffff8d8, "bar", va_list) error: errno = 12: Not enough space
> extension: "%{@}" 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.


Mime
View raw message