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/07 01:30:29 UTC

[jira] Commented: (STDCXX-157) [XLC++ 7.0, 8.0] explicit instantiation fails to emit some symbols

    [ http://issues.apache.org/jira/browse/STDCXX-157?page=comments#action_12369111 ] 

Martin Sebor commented on STDCXX-157:
-------------------------------------

This bug is actually correctly detected as the following portion of config.log shows:

xlCcore -c -O -qinline   -D_RWSTD_USE_CONFIG -I. /build/sebor/dev/stdlib/etc/config/src/EXTERN_TEMPLATE.cpp
xlCcore EXTERN_TEMPLATE.o -I/build/sebor/dev/stdlib/include/ansi    -D_RWSTD_USE_CONFIG -liconv -brtl   ./extern_template_imp.o -lm  -o EXTERN_TEMPLATE
ld: 0711-317 ERROR: Undefined symbol: .S<int>::bar() const
ld: 0711-317 ERROR: Undefined symbol: .S<int>::baz() const
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