Results from Intel´s C++ ABI Testsuite
Andreas Jaeger
aj@suse.de
Sat Jul 6 11:51:00 GMT 2002
I've downloaded Intel's C++ ABI Testsuite (available via
http://developer.intel.com/software/products/opensource/) and run it
with both GCC 3.1 CVS and GCC 3.2 CVS to check for ABI problems on
i686-linux-gnu.
I get with both GCC 3.1 and 3.2 the following error:
/opt/gcc/3.1-devel/bin/g++ -g -DSTDIO_OK -DUSE_FUNCTION_DESCRIPTORS -c -o operator1.o operator1.cpp
missing=0; \
for name in `./extract_mangled_names.sh "operator1.cpp"`; do \
if ! nm operator1.o | grep ${name}'$' > /dev/null; then \
echo ' missing:' "${name}" >&2; \
missing=1; \
fi; \
done; \
if [ ${missing} = 1 ]; then \
exit 1; \
fi
missing: _Znwm
missing: _Znam
make[1]: *** [operator1.pass] Error 1
This means that these two names are mangled wrongly:
// ::operator new (size_t)
//% mangled name: _Znwm
// ::operator new[] (size_t)
//% mangled name: _Znam
nm has instead:
U _Znaj
U _Znwj
The difference here is unsigned int versus unsigned long as type of
the operator. I don't know whether this is a real bug or a problem in
the testsuite but it doesn't look critical to me.
The good news is that this is the only problem that the ABI Testsuite
showed with GCC, all other tests passed!
Andreas
--
Andreas Jaeger
SuSE Labs aj@suse.de
private aj@arthur.inka.de
http://www.suse.de/~aj
More information about the Gcc
mailing list