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 2007/10/22 06:51:50 UTC

[jira] Created: (STDCXX-603) [IBM XLC++ 9.0] unsats on std::valarray::apply() in 26.valarray.members.stdcxx-313.cpp

[IBM XLC++ 9.0] unsats on std::valarray<S>::apply() in 26.valarray.members.stdcxx-313.cpp
-----------------------------------------------------------------------------------------

                 Key: STDCXX-603
                 URL: https://issues.apache.org/jira/browse/STDCXX-603
             Project: C++ Standard Library
          Issue Type: Bug
          Components: Tests
    Affects Versions: trunk
         Environment: IBM XLC++ 9.0/AIX 5.3
            Reporter: Martin Sebor
             Fix For: 4.2.1


The 26.valarray.members.stdcxx-313.cpp regression test fails to link with IBM XLC++ 9.0 on AIX 5.3:

xlCcore_r -c -I$(TOPDIR)/include/ansi    -I$(TOPDIR)/include -I$(BUILDDIR)/include -I$(TOPDIR)/tests/include  -O -Q     -qtemplateregistry=26.valarray.members.stdcxx-313.ti $(TOPDIR)/tests/regress/26.valarray.members.stdcxx-313.cpp
xlCcore_r 26.valarray.members.stdcxx-313.o -o 26.valarray.members.stdcxx-313 -L$(BUILDDIR)/rwtest -lrwtest -I$(TOPDIR)/include/ansi    -liconv -Wl,-bh:5    -L$(BUILDDIR)/lib  -Wl,-bsvr4,-R$(BUILDDIR)/lib:$(BUILDDIR)/rwtest -lstd  -lm -qtemplateregistry=26.valarray.members.stdcxx-313.ti
ld: 0711-317 ERROR: Undefined symbol: .std::valarray<S>::apply(S(*)(S)) const
ld: 0711-317 ERROR: Undefined symbol: .std::valarray<S>::apply(S(*)(const S&)) const
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
gmake: *** [26.valarray.members.stdcxx-313] Error 8


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (STDCXX-603) [IBM XLC++ 9.0] unsats on std::valarray::apply() in 26.valarray.members.stdcxx-313.cpp

Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/STDCXX-603?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Travis Vitek updated STDCXX-603:
--------------------------------

    Attachment: stdcxx-603.patch

This isn't the prettiest solution, but it does work. Instead of using the `value_type' typedef in the function type parameter declaration, we use the actual template type. We could change the rest of the header to be internally consistent, but that would be inconsistent with other class template member function definitions.

2007-12-04  Travis Vitek  <vi...@roguewave.com>

	STDCXX-603
	* include/valarray (apply): Avoid use of typedef in function
	type to avoid linker error with VisualAge C++.

> [IBM XLC++ 9.0] unsats on std::valarray<S>::apply() in 26.valarray.members.stdcxx-313.cpp
> -----------------------------------------------------------------------------------------
>
>                 Key: STDCXX-603
>                 URL: https://issues.apache.org/jira/browse/STDCXX-603
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: Tests
>    Affects Versions: 4.2.0
>         Environment: IBM XLC++ 9.0/AIX 5.3
>            Reporter: Martin Sebor
>            Assignee: Travis Vitek
>             Fix For: 4.2.1
>
>         Attachments: stdcxx-603.patch
>
>
> The 26.valarray.members.stdcxx-313.cpp regression test fails to link with IBM XLC++ 9.0 on AIX 5.3:
> xlCcore_r -c -I$(TOPDIR)/include/ansi    -I$(TOPDIR)/include -I$(BUILDDIR)/include -I$(TOPDIR)/tests/include  -O -Q     -qtemplateregistry=26.valarray.members.stdcxx-313.ti $(TOPDIR)/tests/regress/26.valarray.members.stdcxx-313.cpp
> xlCcore_r 26.valarray.members.stdcxx-313.o -o 26.valarray.members.stdcxx-313 -L$(BUILDDIR)/rwtest -lrwtest -I$(TOPDIR)/include/ansi    -liconv -Wl,-bh:5    -L$(BUILDDIR)/lib  -Wl,-bsvr4,-R$(BUILDDIR)/lib:$(BUILDDIR)/rwtest -lstd  -lm -qtemplateregistry=26.valarray.members.stdcxx-313.ti
> ld: 0711-317 ERROR: Undefined symbol: .std::valarray<S>::apply(S(*)(S)) const
> ld: 0711-317 ERROR: Undefined symbol: .std::valarray<S>::apply(S(*)(const S&)) const
> ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
> gmake: *** [26.valarray.members.stdcxx-313] Error 8

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (STDCXX-603) [IBM XLC++ 9.0] unsats on std::valarray::apply() in 26.valarray.members.stdcxx-313.cpp

Posted by "Martin Sebor (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/STDCXX-603?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12549261 ] 

Martin Sebor commented on STDCXX-603:
-------------------------------------

Committed thus: http://svn.apache.org/viewvc?rev=601935&view=rev

We also need to isolate the compiler bug to a small test case, add it to Jira under the External category, and let IBM know about it.
Did you ever manage to report the other issue (was it STDCXX-605) to them?

> [IBM XLC++ 9.0] unsats on std::valarray<S>::apply() in 26.valarray.members.stdcxx-313.cpp
> -----------------------------------------------------------------------------------------
>
>                 Key: STDCXX-603
>                 URL: https://issues.apache.org/jira/browse/STDCXX-603
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: Tests
>    Affects Versions: 4.2.0
>         Environment: IBM XLC++ 9.0/AIX 5.3
>            Reporter: Martin Sebor
>            Assignee: Travis Vitek
>             Fix For: 4.2.1
>
>         Attachments: stdcxx-603.patch
>
>
> The 26.valarray.members.stdcxx-313.cpp regression test fails to link with IBM XLC++ 9.0 on AIX 5.3:
> xlCcore_r -c -I$(TOPDIR)/include/ansi    -I$(TOPDIR)/include -I$(BUILDDIR)/include -I$(TOPDIR)/tests/include  -O -Q     -qtemplateregistry=26.valarray.members.stdcxx-313.ti $(TOPDIR)/tests/regress/26.valarray.members.stdcxx-313.cpp
> xlCcore_r 26.valarray.members.stdcxx-313.o -o 26.valarray.members.stdcxx-313 -L$(BUILDDIR)/rwtest -lrwtest -I$(TOPDIR)/include/ansi    -liconv -Wl,-bh:5    -L$(BUILDDIR)/lib  -Wl,-bsvr4,-R$(BUILDDIR)/lib:$(BUILDDIR)/rwtest -lstd  -lm -qtemplateregistry=26.valarray.members.stdcxx-313.ti
> ld: 0711-317 ERROR: Undefined symbol: .std::valarray<S>::apply(S(*)(S)) const
> ld: 0711-317 ERROR: Undefined symbol: .std::valarray<S>::apply(S(*)(const S&)) const
> ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
> gmake: *** [26.valarray.members.stdcxx-313] Error 8

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (STDCXX-603) [IBM XLC++ 9.0] unsats on std::valarray::apply() in 26.valarray.members.stdcxx-313.cpp

Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/STDCXX-603?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12548082 ] 

Travis Vitek commented on STDCXX-603:
-------------------------------------

Here is a reduced test case. The issue can be resolved by writing apply() inline in the class declaration or changing the declaration of `__fun' to `void __fun(const T&)'. Apparently the VisualAge C++ compiler gets confused when using a typedef in this context.

[vitek@rimple tests]$ cat t.cpp && gmake t
template <class T>
struct valarray
{
    typedef T U;
    void apply (void __func (const U&)) const;
};

template <class T>
void valarray<T>::apply (void __fun (const U&)) const { } 

struct S { };
void foo (const S& s) { };

int main ()
{
    valarray<S>().apply (foo);
    return 0;
}
xlCcore t.o -o t -L/build/vitek/11s/rwtest -lrwtest11s -I/amd/devco/vitek/stdcxx/trunk/include/ansi -D_RWSTDDEBUG    -liconv -Wl,-bh:5    -L/build/vitek/11s/lib  -lstd11s  -lm -qtemplateregistry=t.ti
ld: 0711-317 ERROR: Undefined symbol: .valarray<S>::apply(void(*)(const S&)) const
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
gmake: *** [t] Error 8


> [IBM XLC++ 9.0] unsats on std::valarray<S>::apply() in 26.valarray.members.stdcxx-313.cpp
> -----------------------------------------------------------------------------------------
>
>                 Key: STDCXX-603
>                 URL: https://issues.apache.org/jira/browse/STDCXX-603
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: Tests
>    Affects Versions: 4.2.0
>         Environment: IBM XLC++ 9.0/AIX 5.3
>            Reporter: Martin Sebor
>            Assignee: Travis Vitek
>             Fix For: 4.2.1
>
>
> The 26.valarray.members.stdcxx-313.cpp regression test fails to link with IBM XLC++ 9.0 on AIX 5.3:
> xlCcore_r -c -I$(TOPDIR)/include/ansi    -I$(TOPDIR)/include -I$(BUILDDIR)/include -I$(TOPDIR)/tests/include  -O -Q     -qtemplateregistry=26.valarray.members.stdcxx-313.ti $(TOPDIR)/tests/regress/26.valarray.members.stdcxx-313.cpp
> xlCcore_r 26.valarray.members.stdcxx-313.o -o 26.valarray.members.stdcxx-313 -L$(BUILDDIR)/rwtest -lrwtest -I$(TOPDIR)/include/ansi    -liconv -Wl,-bh:5    -L$(BUILDDIR)/lib  -Wl,-bsvr4,-R$(BUILDDIR)/lib:$(BUILDDIR)/rwtest -lstd  -lm -qtemplateregistry=26.valarray.members.stdcxx-313.ti
> ld: 0711-317 ERROR: Undefined symbol: .std::valarray<S>::apply(S(*)(S)) const
> ld: 0711-317 ERROR: Undefined symbol: .std::valarray<S>::apply(S(*)(const S&)) const
> ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
> gmake: *** [26.valarray.members.stdcxx-313] Error 8

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (STDCXX-603) [IBM XLC++ 9.0] unsats on std::valarray::apply() in 26.valarray.members.stdcxx-313.cpp

Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/STDCXX-603?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Travis Vitek closed STDCXX-603.
-------------------------------

    Resolution: Fixed

Verfied to compile and run in automated testing.

> [IBM XLC++ 9.0] unsats on std::valarray<S>::apply() in 26.valarray.members.stdcxx-313.cpp
> -----------------------------------------------------------------------------------------
>
>                 Key: STDCXX-603
>                 URL: https://issues.apache.org/jira/browse/STDCXX-603
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: Tests
>    Affects Versions: 4.2.0
>         Environment: IBM XLC++ 9.0/AIX 5.3
>            Reporter: Martin Sebor
>            Assignee: Travis Vitek
>             Fix For: 4.2.1
>
>         Attachments: stdcxx-603.patch
>
>
> The 26.valarray.members.stdcxx-313.cpp regression test fails to link with IBM XLC++ 9.0 on AIX 5.3:
> xlCcore_r -c -I$(TOPDIR)/include/ansi    -I$(TOPDIR)/include -I$(BUILDDIR)/include -I$(TOPDIR)/tests/include  -O -Q     -qtemplateregistry=26.valarray.members.stdcxx-313.ti $(TOPDIR)/tests/regress/26.valarray.members.stdcxx-313.cpp
> xlCcore_r 26.valarray.members.stdcxx-313.o -o 26.valarray.members.stdcxx-313 -L$(BUILDDIR)/rwtest -lrwtest -I$(TOPDIR)/include/ansi    -liconv -Wl,-bh:5    -L$(BUILDDIR)/lib  -Wl,-bsvr4,-R$(BUILDDIR)/lib:$(BUILDDIR)/rwtest -lstd  -lm -qtemplateregistry=26.valarray.members.stdcxx-313.ti
> ld: 0711-317 ERROR: Undefined symbol: .std::valarray<S>::apply(S(*)(S)) const
> ld: 0711-317 ERROR: Undefined symbol: .std::valarray<S>::apply(S(*)(const S&)) const
> ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
> gmake: *** [26.valarray.members.stdcxx-313] Error 8

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (STDCXX-603) [IBM XLC++ 9.0] unsats on std::valarray::apply() in 26.valarray.members.stdcxx-313.cpp

Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/STDCXX-603?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Travis Vitek updated STDCXX-603:
--------------------------------

    Patch Info: [Patch Available]

> [IBM XLC++ 9.0] unsats on std::valarray<S>::apply() in 26.valarray.members.stdcxx-313.cpp
> -----------------------------------------------------------------------------------------
>
>                 Key: STDCXX-603
>                 URL: https://issues.apache.org/jira/browse/STDCXX-603
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: Tests
>    Affects Versions: 4.2.0
>         Environment: IBM XLC++ 9.0/AIX 5.3
>            Reporter: Martin Sebor
>            Assignee: Travis Vitek
>             Fix For: 4.2.1
>
>         Attachments: stdcxx-603.patch
>
>
> The 26.valarray.members.stdcxx-313.cpp regression test fails to link with IBM XLC++ 9.0 on AIX 5.3:
> xlCcore_r -c -I$(TOPDIR)/include/ansi    -I$(TOPDIR)/include -I$(BUILDDIR)/include -I$(TOPDIR)/tests/include  -O -Q     -qtemplateregistry=26.valarray.members.stdcxx-313.ti $(TOPDIR)/tests/regress/26.valarray.members.stdcxx-313.cpp
> xlCcore_r 26.valarray.members.stdcxx-313.o -o 26.valarray.members.stdcxx-313 -L$(BUILDDIR)/rwtest -lrwtest -I$(TOPDIR)/include/ansi    -liconv -Wl,-bh:5    -L$(BUILDDIR)/lib  -Wl,-bsvr4,-R$(BUILDDIR)/lib:$(BUILDDIR)/rwtest -lstd  -lm -qtemplateregistry=26.valarray.members.stdcxx-313.ti
> ld: 0711-317 ERROR: Undefined symbol: .std::valarray<S>::apply(S(*)(S)) const
> ld: 0711-317 ERROR: Undefined symbol: .std::valarray<S>::apply(S(*)(const S&)) const
> ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
> gmake: *** [26.valarray.members.stdcxx-313] Error 8

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (STDCXX-603) [IBM XLC++ 9.0] unsats on std::valarray::apply() in 26.valarray.members.stdcxx-313.cpp

Posted by "Martin Sebor (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/STDCXX-603?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Sebor reassigned STDCXX-603:
-----------------------------------

    Assignee: Travis Vitek

> [IBM XLC++ 9.0] unsats on std::valarray<S>::apply() in 26.valarray.members.stdcxx-313.cpp
> -----------------------------------------------------------------------------------------
>
>                 Key: STDCXX-603
>                 URL: https://issues.apache.org/jira/browse/STDCXX-603
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: Tests
>    Affects Versions: 4.2.0
>         Environment: IBM XLC++ 9.0/AIX 5.3
>            Reporter: Martin Sebor
>            Assignee: Travis Vitek
>             Fix For: 4.2.1
>
>
> The 26.valarray.members.stdcxx-313.cpp regression test fails to link with IBM XLC++ 9.0 on AIX 5.3:
> xlCcore_r -c -I$(TOPDIR)/include/ansi    -I$(TOPDIR)/include -I$(BUILDDIR)/include -I$(TOPDIR)/tests/include  -O -Q     -qtemplateregistry=26.valarray.members.stdcxx-313.ti $(TOPDIR)/tests/regress/26.valarray.members.stdcxx-313.cpp
> xlCcore_r 26.valarray.members.stdcxx-313.o -o 26.valarray.members.stdcxx-313 -L$(BUILDDIR)/rwtest -lrwtest -I$(TOPDIR)/include/ansi    -liconv -Wl,-bh:5    -L$(BUILDDIR)/lib  -Wl,-bsvr4,-R$(BUILDDIR)/lib:$(BUILDDIR)/rwtest -lstd  -lm -qtemplateregistry=26.valarray.members.stdcxx-313.ti
> ld: 0711-317 ERROR: Undefined symbol: .std::valarray<S>::apply(S(*)(S)) const
> ld: 0711-317 ERROR: Undefined symbol: .std::valarray<S>::apply(S(*)(const S&)) const
> ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
> gmake: *** [26.valarray.members.stdcxx-313] Error 8

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.