You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by "Martin Sebor (JIRA)" <ji...@apache.org> on 2006/03/01 21:25:36 UTC
[jira] Updated: (STDCXX-157) [XLC++ 7.0, 8.0] explicit
instantiation fails to emit some symbols
[ http://issues.apache.org/jira/browse/STDCXX-157?page=all ]
Martin Sebor updated STDCXX-157:
--------------------------------
Summary: [XLC++ 7.0, 8.0] explicit instantiation fails to emit some symbols (was: [XLC++ 8.0/Linux] explicit instantiation fails to emit some symbols)
The same error can be reproduced with both XLC++ 7.0 and 8.0 on AIX:
$ xlC -qversion && xlC -c t.cpp && xlC -Dmain=main -c t.cpp -o a.o && xlC a.o t.o
IBM XL C/C++ Enterprise Edition V7.0
ld: 0711-317 ERROR: Undefined symbol: .S<int>::bar()
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
$ xlC -qversion && xlC -c t.cpp && xlC -Dmain=main -c t.cpp -o a.o && xlC a.o t.o
IBM XL C/C++ Enterprise Edition V8.0 for AIX
Version: 08.00.0000.0000
ld: 0711-317 ERROR: Undefined symbol: .S<int>::bar()
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
> [XLC++ 7.0, 8.0] explicit instantiation fails to emit some symbols
> ------------------------------------------------------------------
>
> Key: STDCXX-157
> URL: http://issues.apache.org/jira/browse/STDCXX-157
> Project: C++ Standard Library
> Type: Bug
> Components: External
> Environment: $ uname -sr && xlC -qversion
> Linux 2.6.5-7.191-pseries64
> IBM XL C/C++ Advanced Edition V8.0 for Linux
> Version: 08.00.0000.0000
> Reporter: Martin Sebor
>
> PMR 02236,K78,000
> XLC++ 8.0 fails to emit a symbol for the member function S<int>::bar() in the program below.
> $ cat t.cpp && xlC -c t.cpp && echo xlc: && nm -C t.o &&
> echo gcc: && gcc -c t.cpp && nm -C t.o
> template <class T> T foo (T t) { return t; }
> template <class T>
> struct S
> {
> T bar () { return foo (T ()); }
> void baz () { foo<T>(0); }
> };
> template struct S<int>;
> xlc:
> U __IBMCPlusPlusExceptionV2
> 00000000 W int foo<int>(int)
> 00000014 W S<int>::baz()
> gcc:
> 00000000 W int foo<int>(int)
> 00000000 W S<int>::bar()
> 00000000 W S<int>::baz()
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira