Fwd: Floating Point as Hex Patch
Martin York
martin.yorkamazon@gmail.com
Sat Jan 29 00:29:00 GMT 2011
Description:
libstdc++ does not conform to the C++ (draft) standard n3225
22.4.2.2.2 num_put virtual functions [facet.num.put.virtuals]
Table 88 - Floating-Point Conversions
Currently the %a and %A conversion are not supported. They are
supposed to be used when the ostream flags ios_base::fixed and
ios_base::scientific are both set.
This patch adds that functionality.
22.4.2.1.2 num_get virtual functions [facet.num.get.virtuals]
For conversions to a floating type the specifier is %g and the
conversion function is strtold()
Based on the definition of strtold() from the C standard n1124
7.20.1.3 The strtod, strtof, and strtold functions
This indicates that hexadecimal values are converted based on the
syntax of section 6.4.4.2
Basically the format is the same as defined for normal floating point
literals in C++ except:
1) The value is prefixed with 0x or 0X
2) use 'p' or 'P' rather than 'e' or 'E'
3) The top fractional part uses hex digits (the exponent is still base
10 digits)
This functionality has been added.
TestCase changes:
The following files have additional test
testsuite/22_locale/num_get/get/char/2.cc
testsuite/22_locale/num_get/get/wchar_t/2.cc
testsuite/22_locale/num_put/put/char/6.cc
testsuite/22_locale/num_put/put/wchar_t/6.cc
GNU Style checks:
I ran the command contrib/check_GNU_style.sh on the patch file.
It showed difference for:
There should be exactly one space between function name and parentheses.
In all these situations the style matched the surrounding
code so maintain consistency
with the current code I did not change it.
There should be no space before closing parentheses.
In all these situations the code was using the macro
VERIFY() and matched the
usage of the surrounding code. Thus to maintain
consistency it was not corrected.
Change Log Entry
2010-01-26 Martin York <Martin.AmazonYork@gmail.com>
* num_put facet Floating-Point Conversions.
When both the fixed and scientific flags are set on a ostream
floating point numbers will be output using the format specifier
%a or %A (depending n the state of the ostreams uppercase flag).
This mean the floating point values are output hex encoded into
a text stream. If the float radix of your compiler is a power of
two then this representation is loss-less if you output the
number with enough precision.
-> std::numeric_limits<FLOAT Type>::digits /4
* num_get facet Floating-Point Conversions.
Compliments the changes to num_put so that float values in a
hexadecimal representation can be retrieved from a formatted text
stream.
Bootstrapping and testing
Changes were done on Max.
> uname -a
Darwin Alpha.local 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10
18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386
With:
> x-g++ --version
x-g++ (GCC) 4.6.0 20110120 (experimental)
Note: I use the prefix 'x-' to distinguish this compiler from the
system default.
See attached file `test.result.txt` for test result run
Patch:
Please find the patch file attached.
floathex.patch.txt
-------------- next part --------------
[Alpha:~/H2/build] myork% make -k check
autogen -T /Volumes/Lexar/H2/trunk/fixincludes/check.tpl /Volumes/Lexar/H2/trunk/fixincludes/inclhack.def
make[2]: autogen: No such file or directory
make[2]: *** [check] Error 1
make[1]: *** [check-fixincludes] Error 2
Making a new config file...
echo "set tmpdir /Users/myork/H2/build/gcc/testsuite" >> ./tmp0
test -d plugin || mkdir plugin
test -d testsuite || mkdir testsuite
test -d testsuite/gcc || mkdir testsuite/gcc
(rootme=`${PWDCMD-pwd}`; export rootme; \
srcdir=`cd /Volumes/Lexar/H2/trunk/gcc; ${PWDCMD-pwd}` ; export srcdir ; \
cd testsuite/gcc; \
rm -f tmp-site.exp; \
sed '/set tmpdir/ s|testsuite$|testsuite/gcc|' \
< ../../site.exp > tmp-site.exp; \
/bin/sh ${srcdir}/../move-if-change tmp-site.exp site.exp; \
EXPECT=`if [ -f ${rootme}/../expect/expect ] ; then echo ${rootme}/../expect/expect ; else echo expect ; fi` ; export EXPECT ; \
if [ -f ${rootme}/../expect/expect ] ; then \
TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWDCMD-pwd}` ; \
export TCL_LIBRARY ; fi ; \
runtestflags= ; \
if [ -n "" ] ; then \
runtestflags=""; \
elif [ -n "" ] ; then \
parts="`echo ' ' \
| sed 's/=[^ ]* / /g'`"; \
for part in `find $srcdir/testsuite/gcc* -name \*.exp` ; do \
part=`basename $part` ; \
case " $parts $runtestflags " in \
*" $part "*) ;; \
*) runtestflags="$runtestflags $part" ;; \
esac ; \
done ; \
fi ; \
`if [ -f ${srcdir}/../dejagnu/runtest ] ; then echo ${srcdir}/../dejagnu/runtest ; else echo runtest; fi` --tool gcc $runtestflags)
WARNING: Couldn't find the global config file.
Test Run By myork on Wed Jan 26 23:44:34 2011
Native configuration is x86_64-apple-darwin10
=== gcc tests ===
Schedule of variations:
unix
Running target unix
Using /opt/local/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /opt/local/share/dejagnu/config/unix.exp as generic interface file for target.
Using /Volumes/Lexar/H2/trunk/gcc/testsuite/config/default.exp as tool-and-target-specific interface file.
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.c-torture/compile/compile.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.c-torture/execute/execute.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/autopar/autopar.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/charset/charset.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/compat/compat.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/compat/struct-layout-1.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/cpp/cpp.exp ...
FAIL: gcc.dg/cpp/_Pragma3.c (test for excess errors)
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/cpp/trad/trad.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/debug/debug.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/dfp/dfp.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/dg.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/fixed-point/fixed-point.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/format/format.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/gomp/gomp.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/graphite/graphite.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/guality/guality.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/ipa/ipa.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/lto/lto.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/matrix/matrix.exp ...
FAIL: gcc.dg/matrix/transpose-3.c execution, -fprofile-use -fipa-matrix-reorg -fdump-ipa-matrix-reorg -O3 -fwhole-program
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/noncompile/noncompile.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/pch/pch.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/plugin/plugin.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/special/mips-abi.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/special/special.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/struct/struct-reorg.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/tls/tls.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/torture/dg-torture.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/torture/stackalign/stackalign.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/torture/tls/tls.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/tree-ssa/tree-ssa.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/vect/costmodel/i386/i386-costmodel-vect.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/vect/costmodel/ppc/ppc-costmodel-vect.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/vect/costmodel/spu/spu-costmodel-vect.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/vect/vect.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/vmx/vmx.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/vxworks/vxworks.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.dg/weak/weak.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.misc-tests/acker1.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.misc-tests/arm-isr.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.misc-tests/bprob.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.misc-tests/dectest.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.misc-tests/dhry.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.misc-tests/gcov.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.misc-tests/help.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.misc-tests/i386-prefetch.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.misc-tests/linkage.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.misc-tests/matrix1.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.misc-tests/mg-2.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.misc-tests/mg.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.misc-tests/options.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.misc-tests/sieve.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.misc-tests/sort2.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/alpha/alpha.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/arm/aapcs/aapcs.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/arm/arm.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/arm/neon/neon.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/avr/avr.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/avr/torture/avr-torture.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/bfin/bfin.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/cris/cris.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/cris/torture/cris-torture.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/frv/frv.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/i386/i386.exp ...
FAIL: gcc.target/i386/combine-mul.c scan-assembler-not 12345
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/i386/math-torture/math-torture.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/i386/stackalign/stackalign.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/ia64/ia64.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/m68k/m68k.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/microblaze/microblaze.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/mips/inter/mips16-inter.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/mips/mips-nonpic/mips-nonpic.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/mips/mips.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/powerpc/powerpc.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/rx/rx.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/s390/s390.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/sh/sh.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/sparc/sparc.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/spu/ea/ea.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/spu/spu.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/x86_64/abi/avx/abi-avx.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/x86_64/abi/callabi/callabi.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.target/xstormy16/xstormy16.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/gcc.test-framework/test-framework.exp ...
skipping test framework tests, CHECK_TEST_FRAMEWORK is not defined
=== gcc Summary ===
# of expected passes 73913
# of unexpected failures 3
# of expected failures 211
# of unsupported tests 1727
/Users/myork/H2/build/gcc/xgcc version 4.6.0 20110120 (experimental) (GCC)
make[3]: [check-parallel-gcc] Error 1 (ignored)
test -d plugin || mkdir plugin
test -d testsuite || mkdir testsuite
test -d testsuite/g++ || mkdir testsuite/g++
(rootme=`${PWDCMD-pwd}`; export rootme; \
srcdir=`cd /Volumes/Lexar/H2/trunk/gcc; ${PWDCMD-pwd}` ; export srcdir ; \
cd testsuite/g++; \
rm -f tmp-site.exp; \
sed '/set tmpdir/ s|testsuite$|testsuite/g++|' \
< ../../site.exp > tmp-site.exp; \
/bin/sh ${srcdir}/../move-if-change tmp-site.exp site.exp; \
EXPECT=`if [ -f ${rootme}/../expect/expect ] ; then echo ${rootme}/../expect/expect ; else echo expect ; fi` ; export EXPECT ; \
if [ -f ${rootme}/../expect/expect ] ; then \
TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWDCMD-pwd}` ; \
export TCL_LIBRARY ; fi ; \
runtestflags= ; \
if [ -n "" ] ; then \
runtestflags=""; \
elif [ -n "" ] ; then \
parts="`echo ' ' \
| sed 's/=[^ ]* / /g'`"; \
for part in `find $srcdir/testsuite/g++* -name \*.exp` ; do \
part=`basename $part` ; \
case " $parts $runtestflags " in \
*" $part "*) ;; \
*) runtestflags="$runtestflags $part" ;; \
esac ; \
done ; \
fi ; \
`if [ -f ${srcdir}/../dejagnu/runtest ] ; then echo ${srcdir}/../dejagnu/runtest ; else echo runtest; fi` --tool g++ $runtestflags)
WARNING: Couldn't find the global config file.
Test Run By myork on Thu Jan 27 01:08:10 2011
Native configuration is x86_64-apple-darwin10
=== g++ tests ===
Schedule of variations:
unix
Running target unix
Using /opt/local/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /opt/local/share/dejagnu/config/unix.exp as generic interface file for target.
Using /Volumes/Lexar/H2/trunk/gcc/testsuite/config/default.exp as tool-and-target-specific interface file.
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/g++.dg/bprob/bprob.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/g++.dg/charset/charset.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/g++.dg/compat/compat.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/g++.dg/compat/struct-layout-1.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/g++.dg/debug/debug.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/g++.dg/debug/dwarf2/dwarf2.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/g++.dg/dfp/dfp.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/g++.dg/dg.exp ...
WARNING: g++.dg/ext/label13.C compilation failed to produce executable
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/g++.dg/gcov/gcov.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/g++.dg/gomp/gomp.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/g++.dg/graphite/graphite.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/g++.dg/guality/guality.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/g++.dg/lto/lto.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/g++.dg/pch/pch.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/g++.dg/plugin/plugin.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/g++.dg/special/ecos.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/g++.dg/tls/tls.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/g++.dg/torture/dg-torture.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/g++.dg/torture/stackalign/stackalign.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/g++.dg/tree-prof/tree-prof.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/g++.dg/vect/vect.exp ...
Running /Volumes/Lexar/H2/trunk/gcc/testsuite/g++.old-deja/old-deja.exp ...
=== g++ Summary ===
# of expected passes 26596
# of expected failures 160
# of unsupported tests 373
/Users/myork/H2/build/gcc/testsuite/g++/../../g++ version 4.6.0 20110120 (experimental) (GCC)
rm -f stamp-h1
/bin/sh ./config.status config.h
config.status: creating config.h
config.status: config.h is unchanged
test -f config.h || (rm -f stamp-h1 && make stamp-h1)
make[2]: Nothing to be done for `check'.
make[2]: Nothing to be done for `check'.
gcc -DHAVE_CONFIG_H -g -I.. -I/Volumes/Lexar/H2/trunk/libiberty/testsuite/../../include -o test-demangle \
/Volumes/Lexar/H2/trunk/libiberty/testsuite/test-demangle.c ../libiberty.a
./test-demangle < /Volumes/Lexar/H2/trunk/libiberty/testsuite/demangle-expected
./test-demangle: 827 tests, 0 failures
gcc -DHAVE_CONFIG_H -g -I.. -I/Volumes/Lexar/H2/trunk/libiberty/testsuite/../../include -DHAVE_CONFIG_H -I.. -o test-pexecute \
/Volumes/Lexar/H2/trunk/libiberty/testsuite/test-pexecute.c ../libiberty.a
./test-pexecute
gcc -DHAVE_CONFIG_H -g -I.. -I/Volumes/Lexar/H2/trunk/libiberty/testsuite/../../include -DHAVE_CONFIG_H -I.. -o test-expandargv \
/Volumes/Lexar/H2/trunk/libiberty/testsuite/test-expandargv.c ../libiberty.a
./test-expandargv
PASS: test-expandargv-0.
PASS: test-expandargv-1.
PASS: test-expandargv-2.
PASS: test-expandargv-3.
PASS: test-expandargv-4.
PASS: test-expandargv-5.
PASS: test-expandargv-6.
make[1]: Target `check-host' not remade because of errors.
Making check in include
make[3]: Nothing to be done for `check'.
Making check in libsupc++
make[3]: Nothing to be done for `check'.
Making check in doc
make[3]: Nothing to be done for `check'.
Making check in src
make[3]: Nothing to be done for `check'.
Making check in po
make[3]: Nothing to be done for `check'.
Making check in testsuite
make check-DEJAGNU
Making a new site.exp file...
AR="ar"; export AR; \
RANLIB="ranlib"; export RANLIB; \
if [ -z "" ] \
&& [ "" = "-j" ]; then \
make check-DEJAGNUnormal0 check-DEJAGNUnormal1 \
check-DEJAGNUnormal2 check-DEJAGNUnormal3; \
for idx in 0 1 2 3; do \
mv -f normal$idx/libstdc++.sum normal$idx/libstdc++.sum.sep; \
mv -f normal$idx/libstdc++.log normal$idx/libstdc++.log.sep; \
done; \
mv -f libstdc++.sum libstdc++.sum.sep; \
mv -f libstdc++.log libstdc++.log.sep; \
/bin/sh /Volumes/Lexar/H2/trunk/libstdc++-v3/testsuite/../../contrib/dg-extract-results.sh \
libstdc++.sum.sep normal0/libstdc++.sum.sep \
normal1/libstdc++.sum.sep normal2/libstdc++.sum.sep \
normal3/libstdc++.sum.sep > libstdc++.sum; \
/bin/sh /Volumes/Lexar/H2/trunk/libstdc++-v3/testsuite/../../contrib/dg-extract-results.sh -L \
libstdc++.log.sep normal0/libstdc++.log.sep \
normal1/libstdc++.log.sep normal2/libstdc++.log.sep \
normal3/libstdc++.log.sep > libstdc++.log; \
exit 0; \
fi; \
srcdir=`CDPATH="${ZSH_VERSION+.}:" && cd /Volumes/Lexar/H2/trunk/libstdc++-v3/testsuite && pwd`; export srcdir; \
EXPECT=expect; export EXPECT; \
runtest=runtest; \
if [ -z "$runtest" ]; then runtest=runtest; fi; \
tool=libstdc++; \
dirs=; \
case "" in \
normal0) \
if /bin/sh -c "$runtest --version" > /dev/null 2>&1; then \
$runtest --tool $tool --srcdir $srcdir \
abi.exp; \
else echo "WARNING: could not find \`runtest'" 1>&2; :;\
fi; \
dirs="`cd $srcdir; echo [013-9][0-9]_*/* [ab]* de* [ep]*/*`";; \
normal1) \
dirs="`cd $srcdir; echo 2[0-2]_*/*`";; \
normal2) \
dirs="`cd $srcdir; echo 2[4-9]_*/*`";; \
normal3) \
dirs="`cd $srcdir; echo 23_*/* t*/*`";; \
esac; \
if [ -n "" ]; then cd ""; fi; \
if /bin/sh -c "$runtest --version" > /dev/null 2>&1; then \
if [ -n "$dirs" ]; then \
$runtest --tool $tool --srcdir $srcdir \
\
"conformance.exp=`echo $dirs | sed 's/ /* /g;s/$/*/'`"; \
else \
$runtest --tool $tool --srcdir $srcdir \
; \
fi; \
else echo "WARNING: could not find \`runtest'" 1>&2; :;\
fi
WARNING: Couldn't find the global config file.
Test Run By myork on Thu Jan 27 01:31:49 2011
Native configuration is x86_64-apple-darwin10
=== libstdc++ tests ===
Schedule of variations:
unix
Running target unix
Using /opt/local/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /opt/local/share/dejagnu/config/unix.exp as generic interface file for target.
Using /Volumes/Lexar/H2/trunk/libstdc++-v3/testsuite/config/default.exp as tool-and-target-specific interface file.
Running /Volumes/Lexar/H2/trunk/libstdc++-v3/testsuite/libstdc++-abi/abi.exp ...
Running /Volumes/Lexar/H2/trunk/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp ...
=== libstdc++ Summary ===
# of expected passes 6983
# of expected failures 83
# of unsupported tests 652
Making check in python
make[3]: Nothing to be done for `check'.
make "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CC_FOR_TARGET=/Users/myork/H2/build/./gcc/xgcc -B/Users/myork/H2/build/./gcc/" "CFLAGS=-g" "CXXFLAGS=-g" "CFLAGS_FOR_BUILD=-g" "CFLAGS_FOR_TARGET=-g" "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-g" "LIBCFLAGS_FOR_TARGET=-g" "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/Users/myork/H2/install" "infodir=/Users/myork/H2/install/share/info" "libdir=/Users/myork/H2/install/lib" "includedir=/Users/myork/H2/install/include" "prefix=/Users/myork/H2/install" "tooldir=/Users/myork/H2/install/x86_64-apple-darwin10" "gxx_include_dir=/Users/myork/H2/install/include/c++/4.6.0" "AR=ar" "AS=/Users/myork/H2/build/./gcc/as" "LD=/Users/myork/H2/build/./gcc/collect-ld" "RANLIB=ranlib" "NM=/Users/myork/H2/build/./gcc/nm" "NM_FOR_BUILD=" "NM_FOR_TARGET=nm" "DESTDIR=" "WERROR=" DO=all multi-do # make
if [ -z "i386" ]; then \
true; \
else \
rootpre=`${PWDCMD-pwd}`/; export rootpre; \
srcrootpre=`cd /Volumes/Lexar/H2/trunk/libstdc++-v3; ${PWDCMD-pwd}`/; export srcrootpre; \
lib=`echo "${rootpre}" | sed -e 's,^.*/\([^/][^/]*\)/$,\1,'`; \
compiler="/Users/myork/H2/build/./gcc/xgcc -B/Users/myork/H2/build/./gcc/ -B/Users/myork/H2/install/x86_64-apple-darwin10/bin/ -B/Users/myork/H2/install/x86_64-apple-darwin10/lib/ -isystem /Users/myork/H2/install/x86_64-apple-darwin10/include -isystem /Users/myork/H2/install/x86_64-apple-darwin10/sys-include "; \
for i in `${compiler} --print-multi-lib 2>/dev/null`; do \
dir=`echo $i | sed -e 's/;.*$//'`; \
if [ "${dir}" = "." ]; then \
true; \
else \
if [ -d ../${dir}/${lib} ]; then \
flags=`echo $i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
if (cd ../${dir}/${lib}; make "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CC_FOR_TARGET=/Users/myork/H2/build/./gcc/xgcc -B/Users/myork/H2/build/./gcc/" "CFLAGS=-g" "CXXFLAGS=-g" "CFLAGS_FOR_BUILD=-g" "CFLAGS_FOR_TARGET=-g" "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-g" "LIBCFLAGS_FOR_TARGET=-g" "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/Users/myork/H2/install" "infodir=/Users/myork/H2/install/share/info" "libdir=/Users/myork/H2/install/lib" "includedir=/Users/myork/H2/install/include" "prefix=/Users/myork/H2/install" "tooldir=/Users/myork/H2/install/x86_64-apple-darwin10" "gxx_include_dir=/Users/myork/H2/install/include/c++/4.6.0" "AR=ar" "AS=/Users/myork/H2/build/./gcc/as" "LD=/Users/myork/H2/build/./gcc/collect-ld" "RANLIB=ranlib" "NM=/Users/myork/H2/build/./gcc/nm" "NM_FOR_BUILD=" "NM_FOR_TARGET=nm" "DESTDIR=" "WERROR=" \
CFLAGS="-g ${flags}" \
CCASFLAGS=" ${flags}" \
FCFLAGS=" ${flags}" \
FFLAGS=" ${flags}" \
ADAFLAGS=" ${flags}" \
prefix="/Users/myork/H2/install" \
exec_prefix="/Users/myork/H2/install" \
GCJFLAGS=" ${flags}" \
GOCFLAGS="-O2 -g ${flags}" \
CXXFLAGS="-g ${flags}" \
LIBCFLAGS="-g ${flags}" \
LIBCXXFLAGS="-g -fno-implicit-templates ${flags}" \
LDFLAGS=" ${flags}" \
MULTIFLAGS="${flags}" \
DESTDIR="" \
INSTALL="/usr/bin/install -c" \
INSTALL_DATA="/usr/bin/install -c -m 644" \
INSTALL_PROGRAM="/usr/bin/install -c" \
INSTALL_SCRIPT="/usr/bin/install -c" \
all); then \
true; \
else \
exit 1; \
fi; \
else true; \
fi; \
fi; \
done; \
fi
make "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CC_FOR_TARGET=/Users/myork/H2/build/./gcc/xgcc -B/Users/myork/H2/build/./gcc/" "CFLAGS=-g -m32" "CXXFLAGS=-g -m32" "CFLAGS_FOR_BUILD=-g" "CFLAGS_FOR_TARGET=-g" "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=-m32" "LIBCFLAGS=-g -m32" "LIBCFLAGS_FOR_TARGET=-g" "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/Users/myork/H2/install" "infodir=/Users/myork/H2/install/share/info" "libdir=/Users/myork/H2/install/lib" "includedir=/Users/myork/H2/install/include" "prefix=/Users/myork/H2/install" "tooldir=/Users/myork/H2/install/x86_64-apple-darwin10" "gxx_include_dir=/Users/myork/H2/install/include/c++/4.6.0" "AR=ar" "AS=/Users/myork/H2/build/./gcc/as" "LD=/Users/myork/H2/build/./gcc/collect-ld" "RANLIB=ranlib" "NM=/Users/myork/H2/build/./gcc/nm" "NM_FOR_BUILD=" "NM_FOR_TARGET=nm" "DESTDIR=" "WERROR=" all-recursive
Making all in include
make[7]: Nothing to be done for `all'.
Making all in libsupc++
make[7]: Nothing to be done for `all'.
Making all in doc
make[7]: Nothing to be done for `all'.
Making all in src
make[7]: Nothing to be done for `all'.
Making all in po
make[7]: Nothing to be done for `all'.
Making all in testsuite
make[7]: Nothing to be done for `all'.
Making all in python
make[7]: Nothing to be done for `all'.
true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CC_FOR_TARGET=/Users/myork/H2/build/./gcc/xgcc -B/Users/myork/H2/build/./gcc/" "CFLAGS=-g -m32" "CXXFLAGS=-g -m32" "CFLAGS_FOR_BUILD=-g" "CFLAGS_FOR_TARGET=-g" "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=-m32" "LIBCFLAGS=-g -m32" "LIBCFLAGS_FOR_TARGET=-g" "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/Users/myork/H2/install" "infodir=/Users/myork/H2/install/share/info" "libdir=/Users/myork/H2/install/lib" "includedir=/Users/myork/H2/install/include" "prefix=/Users/myork/H2/install" "tooldir=/Users/myork/H2/install/x86_64-apple-darwin10" "gxx_include_dir=/Users/myork/H2/install/include/c++/4.6.0" "AR=ar" "AS=/Users/myork/H2/build/./gcc/as" "LD=/Users/myork/H2/build/./gcc/collect-ld" "RANLIB=ranlib" "NM=/Users/myork/H2/build/./gcc/nm" "NM_FOR_BUILD=" "NM_FOR_TARGET=nm" "DESTDIR=" "WERROR=" DO=all multi-do # make
make "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-g" "CXXFLAGS=-g" "CFLAGS_FOR_BUILD=-g" "CFLAGS_FOR_TARGET=-g" "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "JC1FLAGS=" "LDFLAGS=" "LIBCFLAGS=-g" "LIBCFLAGS_FOR_TARGET=-g" "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/Users/myork/H2/install" "infodir=/Users/myork/H2/install/share/info" "libdir=/Users/myork/H2/install/lib" "prefix=/Users/myork/H2/install" "includedir=/Users/myork/H2/install/include" "AR=ar" "AS=/Users/myork/H2/build/./gcc/as" "CC=/Users/myork/H2/build/./gcc/xgcc -B/Users/myork/H2/build/./gcc/ -B/Users/myork/H2/install/x86_64-apple-darwin10/bin/ -B/Users/myork/H2/install/x86_64-apple-darwin10/lib/ -isystem /Users/myork/H2/install/x86_64-apple-darwin10/include -isystem /Users/myork/H2/install/x86_64-apple-darwin10/sys-include " "CXX=/Users/myork/H2/build/./gcc/g++ -B/Users/myork/H2/build/./gcc/ -nostdinc++ -nostdinc++ -I/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/include/x86_64-apple-darwin10 -I/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/include -I/Volumes/Lexar/H2/trunk/libstdc++-v3/libsupc++ -I/Volumes/Lexar/H2/trunk/libstdc++-v3/include/backward -I/Volumes/Lexar/H2/trunk/libstdc++-v3/testsuite/util -L/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/src -L/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/src/.libs -B/Users/myork/H2/install/x86_64-apple-darwin10/bin/ -B/Users/myork/H2/install/x86_64-apple-darwin10/lib/ -isystem /Users/myork/H2/install/x86_64-apple-darwin10/include -isystem /Users/myork/H2/install/x86_64-apple-darwin10/sys-include " "LD=/Users/myork/H2/build/./gcc/collect-ld" "LIBCFLAGS=-g" "NM=/Users/myork/H2/build/./gcc/nm" "PICFLAG=" "RANLIB=ranlib" "DESTDIR=" DO=all multi-do # make
if [ -z "i386" ]; then \
true; \
else \
rootpre=`${PWDCMD-pwd}`/; export rootpre; \
srcrootpre=`cd /Volumes/Lexar/H2/trunk/libssp; ${PWDCMD-pwd}`/; export srcrootpre; \
lib=`echo "${rootpre}" | sed -e 's,^.*/\([^/][^/]*\)/$,\1,'`; \
compiler="/Users/myork/H2/build/./gcc/xgcc -B/Users/myork/H2/build/./gcc/ -B/Users/myork/H2/install/x86_64-apple-darwin10/bin/ -B/Users/myork/H2/install/x86_64-apple-darwin10/lib/ -isystem /Users/myork/H2/install/x86_64-apple-darwin10/include -isystem /Users/myork/H2/install/x86_64-apple-darwin10/sys-include "; \
for i in `${compiler} --print-multi-lib 2>/dev/null`; do \
dir=`echo $i | sed -e 's/;.*$//'`; \
if [ "${dir}" = "." ]; then \
true; \
else \
if [ -d ../${dir}/${lib} ]; then \
flags=`echo $i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
if (cd ../${dir}/${lib}; make \
CFLAGS="-g ${flags}" \
CCASFLAGS=" ${flags}" \
FCFLAGS=" ${flags}" \
FFLAGS=" ${flags}" \
ADAFLAGS=" ${flags}" \
prefix="/Users/myork/H2/install" \
exec_prefix="/Users/myork/H2/install" \
GCJFLAGS=" ${flags}" \
GOCFLAGS="-O2 -g ${flags}" \
CXXFLAGS="-g ${flags}" \
LIBCFLAGS="-g ${flags}" \
LIBCXXFLAGS="-g -fno-implicit-templates ${flags}" \
LDFLAGS=" ${flags}" \
MULTIFLAGS="${flags}" \
DESTDIR="" \
INSTALL="/usr/bin/install -c" \
INSTALL_DATA="/usr/bin/install -c -m 644" \
INSTALL_PROGRAM="/usr/bin/install -c" \
INSTALL_SCRIPT="/usr/bin/install -c" \
all); then \
true; \
else \
exit 1; \
fi; \
else true; \
fi; \
fi; \
done; \
fi
make "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-g -m32" "CXXFLAGS=-g -m32" "CFLAGS_FOR_BUILD=-g" "CFLAGS_FOR_TARGET=-g" "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "JC1FLAGS=" "LDFLAGS=-m32" "LIBCFLAGS=-g -m32" "LIBCFLAGS_FOR_TARGET=-g" "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/Users/myork/H2/install" "infodir=/Users/myork/H2/install/share/info" "libdir=/Users/myork/H2/install/lib" "prefix=/Users/myork/H2/install" "includedir=/Users/myork/H2/install/include" "AR=ar" "AS=/Users/myork/H2/build/./gcc/as" "CC=/Users/myork/H2/build/./gcc/xgcc -B/Users/myork/H2/build/./gcc/ -B/Users/myork/H2/install/x86_64-apple-darwin10/bin/ -B/Users/myork/H2/install/x86_64-apple-darwin10/lib/ -isystem /Users/myork/H2/install/x86_64-apple-darwin10/include -isystem /Users/myork/H2/install/x86_64-apple-darwin10/sys-include -m32" "CXX=/Users/myork/H2/build/./gcc/g++ -B/Users/myork/H2/build/./gcc/ -nostdinc++ -nostdinc++ -I/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/include/x86_64-apple-darwin10 -I/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/include -I/Volumes/Lexar/H2/trunk/libstdc++-v3/libsupc++ -I/Volumes/Lexar/H2/trunk/libstdc++-v3/include/backward -I/Volumes/Lexar/H2/trunk/libstdc++-v3/testsuite/util -L/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/src -L/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/src/.libs -B/Users/myork/H2/install/x86_64-apple-darwin10/bin/ -B/Users/myork/H2/install/x86_64-apple-darwin10/lib/ -isystem /Users/myork/H2/install/x86_64-apple-darwin10/include -isystem /Users/myork/H2/install/x86_64-apple-darwin10/sys-include " "LD=/Users/myork/H2/build/./gcc/collect-ld" "LIBCFLAGS=-g -m32" "NM=/Users/myork/H2/build/./gcc/nm" "PICFLAG=" "RANLIB=ranlib" "DESTDIR=" all-am
true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-g -m32" "CXXFLAGS=-g -m32" "CFLAGS_FOR_BUILD=-g" "CFLAGS_FOR_TARGET=-g" "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "JC1FLAGS=" "LDFLAGS=-m32" "LIBCFLAGS=-g -m32" "LIBCFLAGS_FOR_TARGET=-g" "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/Users/myork/H2/install" "infodir=/Users/myork/H2/install/share/info" "libdir=/Users/myork/H2/install/lib" "prefix=/Users/myork/H2/install" "includedir=/Users/myork/H2/install/include" "AR=ar" "AS=/Users/myork/H2/build/./gcc/as" "CC=/Users/myork/H2/build/./gcc/xgcc -B/Users/myork/H2/build/./gcc/ -B/Users/myork/H2/install/x86_64-apple-darwin10/bin/ -B/Users/myork/H2/install/x86_64-apple-darwin10/lib/ -isystem /Users/myork/H2/install/x86_64-apple-darwin10/include -isystem /Users/myork/H2/install/x86_64-apple-darwin10/sys-include -m32" "CXX=/Users/myork/H2/build/./gcc/g++ -B/Users/myork/H2/build/./gcc/ -nostdinc++ -nostdinc++ -I/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/include/x86_64-apple-darwin10 -I/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/include -I/Volumes/Lexar/H2/trunk/libstdc++-v3/libsupc++ -I/Volumes/Lexar/H2/trunk/libstdc++-v3/include/backward -I/Volumes/Lexar/H2/trunk/libstdc++-v3/testsuite/util -L/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/src -L/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/src/.libs -B/Users/myork/H2/install/x86_64-apple-darwin10/bin/ -B/Users/myork/H2/install/x86_64-apple-darwin10/lib/ -isystem /Users/myork/H2/install/x86_64-apple-darwin10/include -isystem /Users/myork/H2/install/x86_64-apple-darwin10/sys-include " "LD=/Users/myork/H2/build/./gcc/collect-ld" "LIBCFLAGS=-g -m32" "NM=/Users/myork/H2/build/./gcc/nm" "PICFLAG=" "RANLIB=ranlib" "DESTDIR=" DO=all multi-do # make
make "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-g" "CXXFLAGS=-g" "CFLAGS_FOR_BUILD=-g" "CFLAGS_FOR_TARGET=-g" "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "JC1FLAGS=" "LDFLAGS=" "LIBCFLAGS=-g" "LIBCFLAGS_FOR_TARGET=-g" "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 -I /Volumes/Lexar/H2/trunk/libquadmath/../gcc/doc/include" "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/Users/myork/H2/install" "infodir=/Users/myork/H2/install/share/info" "libdir=/Users/myork/H2/install/lib" "prefix=/Users/myork/H2/install" "includedir=/Users/myork/H2/install/include" "AR=ar" "AS=/Users/myork/H2/build/./gcc/as" "CC=/Users/myork/H2/build/./gcc/xgcc -B/Users/myork/H2/build/./gcc/ -B/Users/myork/H2/install/x86_64-apple-darwin10/bin/ -B/Users/myork/H2/install/x86_64-apple-darwin10/lib/ -isystem /Users/myork/H2/install/x86_64-apple-darwin10/include -isystem /Users/myork/H2/install/x86_64-apple-darwin10/sys-include " "CXX=/Users/myork/H2/build/./gcc/g++ -B/Users/myork/H2/build/./gcc/ -nostdinc++ -nostdinc++ -I/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/include/x86_64-apple-darwin10 -I/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/include -I/Volumes/Lexar/H2/trunk/libstdc++-v3/libsupc++ -I/Volumes/Lexar/H2/trunk/libstdc++-v3/include/backward -I/Volumes/Lexar/H2/trunk/libstdc++-v3/testsuite/util -L/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/src -L/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/src/.libs -B/Users/myork/H2/install/x86_64-apple-darwin10/bin/ -B/Users/myork/H2/install/x86_64-apple-darwin10/lib/ -isystem /Users/myork/H2/install/x86_64-apple-darwin10/include -isystem /Users/myork/H2/install/x86_64-apple-darwin10/sys-include " "LD=/Users/myork/H2/build/./gcc/collect-ld" "LIBCFLAGS=-g" "NM=/Users/myork/H2/build/./gcc/nm" "PICFLAG=" "RANLIB=ranlib" "DESTDIR=" DO=all multi-do # make
if [ -z "i386" ]; then \
true; \
else \
rootpre=`${PWDCMD-pwd}`/; export rootpre; \
srcrootpre=`cd /Volumes/Lexar/H2/trunk/libquadmath; ${PWDCMD-pwd}`/; export srcrootpre; \
lib=`echo "${rootpre}" | sed -e 's,^.*/\([^/][^/]*\)/$,\1,'`; \
compiler="/Users/myork/H2/build/./gcc/xgcc -B/Users/myork/H2/build/./gcc/ -B/Users/myork/H2/install/x86_64-apple-darwin10/bin/ -B/Users/myork/H2/install/x86_64-apple-darwin10/lib/ -isystem /Users/myork/H2/install/x86_64-apple-darwin10/include -isystem /Users/myork/H2/install/x86_64-apple-darwin10/sys-include "; \
for i in `${compiler} --print-multi-lib 2>/dev/null`; do \
dir=`echo $i | sed -e 's/;.*$//'`; \
if [ "${dir}" = "." ]; then \
true; \
else \
if [ -d ../${dir}/${lib} ]; then \
flags=`echo $i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
if (cd ../${dir}/${lib}; make \
CFLAGS="-g ${flags}" \
CCASFLAGS=" ${flags}" \
FCFLAGS=" ${flags}" \
FFLAGS=" ${flags}" \
ADAFLAGS=" ${flags}" \
prefix="/Users/myork/H2/install" \
exec_prefix="/Users/myork/H2/install" \
GCJFLAGS=" ${flags}" \
GOCFLAGS="-O2 -g ${flags}" \
CXXFLAGS="-g ${flags}" \
LIBCFLAGS="-g ${flags}" \
LIBCXXFLAGS="-g -fno-implicit-templates ${flags}" \
LDFLAGS=" ${flags}" \
MULTIFLAGS="${flags}" \
DESTDIR="" \
INSTALL="/usr/bin/install -c" \
INSTALL_DATA="/usr/bin/install -c -m 644" \
INSTALL_PROGRAM="/usr/bin/install -c" \
INSTALL_SCRIPT="/usr/bin/install -c" \
all); then \
true; \
else \
exit 1; \
fi; \
else true; \
fi; \
fi; \
done; \
fi
make "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-g -m32" "CXXFLAGS=-g -m32" "CFLAGS_FOR_BUILD=-g" "CFLAGS_FOR_TARGET=-g" "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "JC1FLAGS=" "LDFLAGS=-m32" "LIBCFLAGS=-g -m32" "LIBCFLAGS_FOR_TARGET=-g" "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 -I /Volumes/Lexar/H2/trunk/libquadmath/../gcc/doc/include" "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/Users/myork/H2/install" "infodir=/Users/myork/H2/install/share/info" "libdir=/Users/myork/H2/install/lib" "prefix=/Users/myork/H2/install" "includedir=/Users/myork/H2/install/include" "AR=ar" "AS=/Users/myork/H2/build/./gcc/as" "CC=/Users/myork/H2/build/./gcc/xgcc -B/Users/myork/H2/build/./gcc/ -B/Users/myork/H2/install/x86_64-apple-darwin10/bin/ -B/Users/myork/H2/install/x86_64-apple-darwin10/lib/ -isystem /Users/myork/H2/install/x86_64-apple-darwin10/include -isystem /Users/myork/H2/install/x86_64-apple-darwin10/sys-include -m32" "CXX=/Users/myork/H2/build/./gcc/g++ -B/Users/myork/H2/build/./gcc/ -nostdinc++ -nostdinc++ -I/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/include/x86_64-apple-darwin10 -I/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/include -I/Volumes/Lexar/H2/trunk/libstdc++-v3/libsupc++ -I/Volumes/Lexar/H2/trunk/libstdc++-v3/include/backward -I/Volumes/Lexar/H2/trunk/libstdc++-v3/testsuite/util -L/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/src -L/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/src/.libs -B/Users/myork/H2/install/x86_64-apple-darwin10/bin/ -B/Users/myork/H2/install/x86_64-apple-darwin10/lib/ -isystem /Users/myork/H2/install/x86_64-apple-darwin10/include -isystem /Users/myork/H2/install/x86_64-apple-darwin10/sys-include " "LD=/Users/myork/H2/build/./gcc/collect-ld" "LIBCFLAGS=-g -m32" "NM=/Users/myork/H2/build/./gcc/nm" "PICFLAG=" "RANLIB=ranlib" "DESTDIR=" all-am
true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-g -m32" "CXXFLAGS=-g -m32" "CFLAGS_FOR_BUILD=-g" "CFLAGS_FOR_TARGET=-g" "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "JC1FLAGS=" "LDFLAGS=-m32" "LIBCFLAGS=-g -m32" "LIBCFLAGS_FOR_TARGET=-g" "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 -I /Volumes/Lexar/H2/trunk/libquadmath/../gcc/doc/include -I /Volumes/Lexar/H2/trunk/libquadmath/../gcc/doc/include" "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/Users/myork/H2/install" "infodir=/Users/myork/H2/install/share/info" "libdir=/Users/myork/H2/install/lib" "prefix=/Users/myork/H2/install" "includedir=/Users/myork/H2/install/include" "AR=ar" "AS=/Users/myork/H2/build/./gcc/as" "CC=/Users/myork/H2/build/./gcc/xgcc -B/Users/myork/H2/build/./gcc/ -B/Users/myork/H2/install/x86_64-apple-darwin10/bin/ -B/Users/myork/H2/install/x86_64-apple-darwin10/lib/ -isystem /Users/myork/H2/install/x86_64-apple-darwin10/include -isystem /Users/myork/H2/install/x86_64-apple-darwin10/sys-include -m32" "CXX=/Users/myork/H2/build/./gcc/g++ -B/Users/myork/H2/build/./gcc/ -nostdinc++ -nostdinc++ -I/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/include/x86_64-apple-darwin10 -I/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/include -I/Volumes/Lexar/H2/trunk/libstdc++-v3/libsupc++ -I/Volumes/Lexar/H2/trunk/libstdc++-v3/include/backward -I/Volumes/Lexar/H2/trunk/libstdc++-v3/testsuite/util -L/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/src -L/Users/myork/H2/build/x86_64-apple-darwin10/libstdc++-v3/src/.libs -B/Users/myork/H2/install/x86_64-apple-darwin10/bin/ -B/Users/myork/H2/install/x86_64-apple-darwin10/lib/ -isystem /Users/myork/H2/install/x86_64-apple-darwin10/include -isystem /Users/myork/H2/install/x86_64-apple-darwin10/sys-include " "LD=/Users/myork/H2/build/./gcc/collect-ld" "LIBCFLAGS=-g -m32" "NM=/Users/myork/H2/build/./gcc/nm" "PICFLAG=" "RANLIB=ranlib" "DESTDIR=" DO=all multi-do # make
make[3]: Nothing to be done for `check'.
Making check in testsuite
make check-DEJAGNU
Making a new site.exp file...
srcdir=`CDPATH="${ZSH_VERSION+.}:" && cd /Volumes/Lexar/H2/trunk/libgomp/testsuite && pwd`; export srcdir; \
EXPECT=expect; export EXPECT; \
runtest=runtest; \
if /bin/sh -c "$runtest --version" > /dev/null 2>&1; then \
exit_status=0; l='libgomp'; for tool in $l; do \
if $runtest --tool $tool --srcdir $srcdir ; \
then :; else exit_status=1; fi; \
done; \
else echo "WARNING: could not find \`runtest'" 1>&2; :;\
fi; \
exit $exit_status
WARNING: Couldn't find the global config file.
Test Run By myork on Thu Jan 27 02:36:37 2011
Native configuration is x86_64-apple-darwin10
=== libgomp tests ===
Schedule of variations:
unix
Running target unix
Using /opt/local/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /opt/local/share/dejagnu/config/unix.exp as generic interface file for target.
Using /Volumes/Lexar/H2/trunk/libgomp/testsuite/config/default.exp as tool-and-target-specific interface file.
Running /Volumes/Lexar/H2/trunk/libgomp/testsuite/libgomp.c/c.exp ...
Running /Volumes/Lexar/H2/trunk/libgomp/testsuite/libgomp.c++/c++.exp ...
Running /Volumes/Lexar/H2/trunk/libgomp/testsuite/libgomp.fortran/fortran.exp ...
No libgfortran library found, will not execute fortran tests
Running /Volumes/Lexar/H2/trunk/libgomp/testsuite/libgomp.graphite/graphite.exp ...
=== libgomp Summary ===
# of expected passes 1025
# of unsupported tests 2
make DO=all multi-do # make
if [ -z "i386" ]; then \
true; \
else \
rootpre=`${PWDCMD-pwd}`/; export rootpre; \
srcrootpre=`cd /Volumes/Lexar/H2/trunk/libgomp; ${PWDCMD-pwd}`/; export srcrootpre; \
lib=`echo "${rootpre}" | sed -e 's,^.*/\([^/][^/]*\)/$,\1,'`; \
compiler="/Users/myork/H2/build/./gcc/xgcc -B/Users/myork/H2/build/./gcc/ -B/Users/myork/H2/install/x86_64-apple-darwin10/bin/ -B/Users/myork/H2/install/x86_64-apple-darwin10/lib/ -isystem /Users/myork/H2/install/x86_64-apple-darwin10/include -isystem /Users/myork/H2/install/x86_64-apple-darwin10/sys-include "; \
for i in `${compiler} --print-multi-lib 2>/dev/null`; do \
dir=`echo $i | sed -e 's/;.*$//'`; \
if [ "${dir}" = "." ]; then \
true; \
else \
if [ -d ../${dir}/${lib} ]; then \
flags=`echo $i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
if (cd ../${dir}/${lib}; make \
CFLAGS="-g ${flags}" \
CCASFLAGS=" ${flags}" \
FCFLAGS="-L. -Wall -L../libgfortran ${flags}" \
FFLAGS=" ${flags}" \
ADAFLAGS=" ${flags}" \
prefix="/Users/myork/H2/install" \
exec_prefix="/Users/myork/H2/install" \
GCJFLAGS=" ${flags}" \
GOCFLAGS="-O2 -g ${flags}" \
CXXFLAGS="-g ${flags}" \
LIBCFLAGS="-g ${flags}" \
LIBCXXFLAGS="-g -fno-implicit-templates ${flags}" \
LDFLAGS=" ${flags}" \
MULTIFLAGS="${flags}" \
DESTDIR="" \
INSTALL="/usr/bin/install -c" \
INSTALL_DATA="/usr/bin/install -c -m 644" \
INSTALL_PROGRAM="/usr/bin/install -c" \
INSTALL_SCRIPT="/usr/bin/install -c" \
all); then \
true; \
else \
exit 1; \
fi; \
else true; \
fi; \
fi; \
done; \
fi
make all-recursive
Making all in testsuite
make[7]: Nothing to be done for `all'.
true DO=all multi-do # make
make: *** [do-check] Error 2
make: Target `check' not remade because of errors.
[Alpha:~/H2/build] myork%
-------------- next part --------------
Index: libstdc++-v3/src/locale_facets.cc
===================================================================
--- libstdc++-v3/src/.svn/text-base/locale_facets.cc.svn-base 2011-01-20 02:35:26.000000000 -0800
+++ libstdc++-v3/src/locale_facets.cc 2011-01-25 23:14:52.000000000 -0800
@@ -51,8 +51,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
const char* money_base::_S_atoms = "-0123456789";
- const char* __num_base::_S_atoms_in = "-+xX0123456789abcdefABCDEF";
- const char* __num_base::_S_atoms_out ="-+xX0123456789abcdef0123456789ABCDEF";
+ const char* __num_base::_S_atoms_in = "-+xXpP0123456789abcdefABCDEF";
+ const char* __num_base::_S_atoms_out ="-+xXpP0123456789abcdef0123456789ABCDEF";
// _GLIBCXX_RESOLVE_LIB_DEFECTS
// According to the resolution of DR 231, about 22.2.2.2.2, p11,
@@ -77,11 +77,13 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
if (__mod)
*__fptr++ = __mod;
ios_base::fmtflags __fltfield = __flags & ios_base::floatfield;
- // [22.2.2.2.2] Table 58
+ // n3225 [22.4.2.2.2] Table 88
if (__fltfield == ios_base::fixed)
*__fptr++ = 'f';
else if (__fltfield == ios_base::scientific)
*__fptr++ = (__flags & ios_base::uppercase) ? 'E' : 'e';
+ else if (__fltfield == (ios_base::scientific | ios_base::fixed))
+ *__fptr++ = (__flags & ios_base::uppercase) ? 'A' : 'a';
else
*__fptr++ = (__flags & ios_base::uppercase) ? 'G' : 'g';
*__fptr = '\0';
Index: libstdc++-v3/include/bits/locale_facets.tcc
===================================================================
--- libstdc++-v3/include/bits/.svn/text-base/locale_facets.tcc.svn-base 2011-01-20 02:36:28.000000000 -0800
+++ libstdc++-v3/include/bits/locale_facets.tcc 2011-01-26 23:40:10.000000000 -0800
@@ -175,6 +175,7 @@ _GLIBCXX_BEGIN_LDBL_NAMESPACE
// Next, look for leading zeros.
bool __found_mantissa = false;
+ bool __found_hex = false;
int __sep_pos = 0;
while (!__testeof)
{
@@ -195,6 +196,20 @@ _GLIBCXX_BEGIN_LDBL_NAMESPACE
else
__testeof = true;
}
+ // If a float starts 0x then it is a hexadecimal floating const
+ // But we only do this if both fixed and scientific are set
+ else if (
+ (__c == __lit[__num_base::_S_ix] || __c == __lit[__num_base::_S_iX])
+ && (__sep_pos == 1))
+ {
+ __found_hex = true;
+ __xtrc += 'x';
+ if (++__beg != __end)
+ __c = *__beg;
+ else
+ __testeof = true;
+ break;
+ }
else
break;
}
@@ -206,13 +221,35 @@ _GLIBCXX_BEGIN_LDBL_NAMESPACE
if (__lc->_M_use_grouping)
__found_grouping.reserve(32);
const char_type* __lit_zero = __lit + __num_base::_S_izero;
+ // So use the C local to decide them.
+ // Use __len rather than literal 10 in decoding the digits to account
+ // for hexadecimal digits. The exponent prefix is changed from e -> p
+ const char_type __expPrefixLower
+ = __lit[__found_hex
+ ? __num_base::_S_ip
+ : __num_base::_S_ie];
+ const char_type __expPrefixUpper
+ = __lit[__found_hex
+ ? __num_base::_S_iP
+ : __num_base::_S_iE];
+ size_t __len = (__found_hex
+ ? __num_base::_S_iend - __num_base::_S_izero
+ : 10);
- if (!__lc->_M_allocated)
+ // Hexadecimal floating point values are not subject to local
+ if ((__found_hex) || (!__lc->_M_allocated))
// "C" locale
while (!__testeof)
{
- const int __digit = _M_find(__lit_zero, 10, __c);
- if (__digit != -1)
+ const int __digit = _M_find(__lit_zero, __len, __c);
+ if (__digit >= 10)
+ {
+ // Decode Hex digits
+ int __offset = __digit >= 16 ? 16 : 10;
+ __xtrc += 'A' - __offset + __digit;
+ __found_mantissa = true;
+ }
+ else if (__digit != -1)
{
__xtrc += '0' + __digit;
__found_mantissa = true;
@@ -223,13 +260,15 @@ _GLIBCXX_BEGIN_LDBL_NAMESPACE
__xtrc += '.';
__found_dec = true;
}
- else if ((__c == __lit[__num_base::_S_ie]
- || __c == __lit[__num_base::_S_iE])
+ else if ((__c == __expPrefixLower
+ || __c == __expPrefixUpper)
&& !__found_sci && __found_mantissa)
{
// Scientific notation.
- __xtrc += 'e';
+ __xtrc += __found_hex ? 'p' : 'e';
__found_sci = true;
+ // The digit sequence after the exponent symbols is always base 10
+ __len = 10;
// Remove optional plus or minus sign, if they exist.
if (++__beg != __end)
@@ -346,6 +385,12 @@ _GLIBCXX_BEGIN_LDBL_NAMESPACE
__testeof = true;
}
+ // If this was a HEX coded float (see 6.4.4.2 of n1124)
+ // Then it is required to have the exponent part of the number
+ if ((__found_hex) && (!__found_sci))
+ {
+ __err = ios_base::failbit;
+ }
// Digit grouping is checked. If grouping and found_grouping don't
// match, then get very very upset, and set failbit.
if (__found_grouping.size())
Index: libstdc++-v3/include/bits/locale_facets.h
===================================================================
--- libstdc++-v3/include/bits/.svn/text-base/locale_facets.h.svn-base 2011-01-20 02:36:28.000000000 -0800
+++ libstdc++-v3/include/bits/locale_facets.h 2011-01-25 23:15:22.000000000 -0800
@@ -1522,6 +1522,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
_S_oplus,
_S_ox,
_S_oX,
+ _S_op,
+ _S_oP,
_S_odigits,
_S_odigits_end = _S_odigits + 16,
_S_oudigits = _S_odigits_end,
@@ -1548,10 +1550,12 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
_S_iplus,
_S_ix,
_S_iX,
+ _S_ip,
+ _S_iP,
_S_izero,
_S_ie = _S_izero + 14,
_S_iE = _S_izero + 20,
- _S_iend = 26
+ _S_iend = 28
};
// num_put
Index: libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/6.cc
===================================================================
--- libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/.svn/text-base/6.cc.svn-base 2011-01-20 02:43:10.000000000 -0800
+++ libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/6.cc 2011-01-26 22:45:38.000000000 -0800
@@ -21,6 +21,8 @@
#include <locale>
#include <sstream>
+#include <limits>
+#include <cfloat>
#include <testsuite_hooks.h>
// libstdc++/9548 and DR 231
@@ -29,11 +31,14 @@ void test01()
using namespace std;
bool test __attribute__((unused)) = true;
- wostringstream woss1, woss2;
+ wostringstream woss1, woss2, woss3;
+ wstringstream woss4;
const num_put<wchar_t>& np1 = use_facet<num_put<wchar_t> >(woss1.getloc());
const num_put<wchar_t>& np2 = use_facet<num_put<wchar_t> >(woss2.getloc());
+ const num_put<wchar_t>& np3 = use_facet<num_put<wchar_t> >(woss3.getloc());
+ const num_put<wchar_t>& np4 = use_facet<num_put<wchar_t> >(woss4.getloc());
- wstring result1, result2;
+ wstring result1, result2, result3;
woss1.precision(-1);
woss1.setf(ios_base::fixed, ios_base::floatfield);
@@ -46,6 +51,32 @@ void test01()
np2.put(woss2.rdbuf(), woss2, L'+', 1.0);
result2 = woss2.str();
VERIFY( result2 == L"1e+00" );
+
+ // If both ios_base::fixed | ios_base::scientific are set then
+ // The format specifier should be "%a" or "%A"
+ // See n3225 22.4.2.2.2 Table 88
+ woss3.precision(2);
+ woss3.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield);
+ np3.put(woss3.rdbuf(), woss3, L'+', 0.001);
+ result3 = woss3.str();
+ VERIFY( result3 == L"0x1.06p-10" );
+
+ if ((FLT_RADIX == 2)||(FLT_RADIX == 4)||(FLT_RADIX == 8)||(FLT_RADIX == 16))
+ {
+ // if FLT_RADIX is a power of 2
+ // If the format specifier is "%a" or "%A" and no precision is specified
+ // the precision is sufficient for an exact representation.
+ // see n1124 7.24.2.1p8
+ double input = 0.0123456789 * 0.01;
+ double result;
+ woss4.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield);
+ woss4.precision(std::numeric_limits<double>::digits/4 + 1);
+
+ np4.put(woss4.rdbuf(), woss4, L' ', input);
+
+ woss4 >> result;
+ VERIFY( input == result );
+ }
}
int main()
Index: libstdc++-v3/testsuite/22_locale/num_put/put/char/6.cc
===================================================================
--- libstdc++-v3/testsuite/22_locale/num_put/put/char/.svn/text-base/6.cc.svn-base 2011-01-20 02:43:10.000000000 -0800
+++ libstdc++-v3/testsuite/22_locale/num_put/put/char/6.cc 2011-01-26 22:45:22.000000000 -0800
@@ -21,6 +21,8 @@
#include <locale>
#include <sstream>
+#include <limits>
+#include <cfloat>
#include <testsuite_hooks.h>
// libstdc++/9548 and DR 231
@@ -29,11 +31,14 @@ void test01()
using namespace std;
bool test __attribute__((unused)) = true;
- ostringstream oss1, oss2;
+ ostringstream oss1, oss2, oss3;
+ stringstream oss4;
const num_put<char>& np1 = use_facet<num_put<char> >(oss1.getloc());
const num_put<char>& np2 = use_facet<num_put<char> >(oss2.getloc());
+ const num_put<char>& np3 = use_facet<num_put<char> >(oss3.getloc());
+ const num_put<char>& np4 = use_facet<num_put<char> >(oss4.getloc());
- string result1, result2;
+ string result1, result2, result3;
oss1.precision(-1);
oss1.setf(ios_base::fixed, ios_base::floatfield);
@@ -46,6 +51,32 @@ void test01()
np2.put(oss2.rdbuf(), oss2, '+', 1.0);
result2 = oss2.str();
VERIFY( result2 == "1e+00" );
+
+ // If both ios_base::fixed | ios_base::scientific are set then
+ // The format specifier should be "%a" or "%A"
+ // See n3225 22.4.2.2.2 Table 88
+ oss3.precision(2);
+ oss3.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield);
+ np3.put(oss3.rdbuf(), oss3, '+', 0.001);
+ result3 = oss3.str();
+ VERIFY( result3 == "0x1.06p-10" );
+
+ if ((FLT_RADIX == 2)||(FLT_RADIX == 4)||(FLT_RADIX == 8)||(FLT_RADIX == 16))
+ {
+ // if FLT_RADIX is a power of 2
+ // If the format specifier is "%a" or "%A" and no precision is specified
+ // the precision is sufficient for an exact representation.
+ // see n1124 7.24.2.1p8
+ double input = 0.0123456789 * 0.01;
+ double result;
+ oss4.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield);
+ oss4.precision(std::numeric_limits<double>::digits/4 + 1);
+
+ np4.put(oss4.rdbuf(), oss4, ' ', input);
+
+ oss4 >> result;
+ VERIFY( input == result );
+ }
}
int main()
Index: libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/2.cc
===================================================================
--- libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/.svn/text-base/2.cc.svn-base 2011-01-20 02:43:40.000000000 -0800
+++ libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/2.cc 2011-01-26 23:37:30.000000000 -0800
@@ -53,6 +53,7 @@ void test02()
const num_get<wchar_t>& ng = use_facet<num_get<wchar_t> >(iss.getloc());
const ios_base::iostate goodbit = ios_base::goodbit;
const ios_base::iostate eofbit = ios_base::eofbit;
+ const ios_base::iostate failbit = ios_base::failbit;
ios_base::iostate err = ios_base::goodbit;
// C
@@ -108,6 +109,23 @@ void test02()
ng.get(iss.rdbuf(), 0, iss, err, d);
VERIFY( d == d2 );
VERIFY( err == eofbit );
+
+ iss.str(L"0xAFp+123");
+ iss.clear();
+ iss.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield);
+ err = goodbit;
+ ng.get(iss.rdbuf(), 0, iss, err, d);
+ VERIFY( d == 0xAFp+123 );
+ VERIFY( err == eofbit );
+
+ iss.str(L"0xFF1p-23 ");
+ iss.clear();
+ iss.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield);
+ err = goodbit;
+ ng.get(iss.rdbuf(), 0, iss, err, d);
+ VERIFY( d == 0xFF1p-23 );
+ VERIFY( err == goodbit );
+
}
int main()
Index: libstdc++-v3/testsuite/22_locale/num_get/get/char/2.cc
===================================================================
--- libstdc++-v3/testsuite/22_locale/num_get/get/char/.svn/text-base/2.cc.svn-base 2011-01-20 02:43:40.000000000 -0800
+++ libstdc++-v3/testsuite/22_locale/num_get/get/char/2.cc 2011-01-26 23:37:12.000000000 -0800
@@ -53,6 +53,7 @@ void test02()
const num_get<char>& ng = use_facet<num_get<char> >(iss.getloc());
const ios_base::iostate goodbit = ios_base::goodbit;
const ios_base::iostate eofbit = ios_base::eofbit;
+ const ios_base::iostate failbit = ios_base::failbit;
ios_base::iostate err = ios_base::goodbit;
// C
@@ -108,6 +109,23 @@ void test02()
ng.get(iss.rdbuf(), 0, iss, err, d);
VERIFY( d == d2 );
VERIFY( err == eofbit );
+
+ iss.str("0xAFp+123");
+ iss.clear();
+ iss.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield);
+ err = goodbit;
+ ng.get(iss.rdbuf(), 0, iss, err, d);
+ VERIFY( d == 0xAFp+123 );
+ VERIFY( err == eofbit );
+
+ iss.str("0xFF1p-23 ");
+ iss.clear();
+ iss.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield);
+ err = goodbit;
+ ng.get(iss.rdbuf(), 0, iss, err, d);
+ VERIFY( d == 0xFF1p-23 );
+ VERIFY( err == goodbit );
+
}
int main()
More information about the Libstdc++
mailing list