[ https://issues.apache.org/jira/browse/STDCXX-1070?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Liviu Nicoara updated STDCXX-1070: ---------------------------------- Description: Definitions of support template function occur after their use. The following test case fails: $ cat test.cpp; gcc -c test.cpp template < class charT > void f () { g (charT ('a')); } template < class charT > void g (charT) { } int h () { return f< char > (), 0; } test.cpp: In instantiation of 'void f() \[with charT = char\]': test.cpp:14:23: required from here test.cpp:4:5: error: 'g' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation \[-fpermissive\] test.cpp:8:6: note: 'template<class charT> void g(charT)' declared here, later in the translation unit The culprits are test_hash, test_weight_val, etc. Comeau and gcc fail, icc and SUNPro CC pass. was: Definitions of support template function occur after their use. The following test case fails: $ cat test.cpp; gcc -c test.cpp template < class charT > void f () { g (charT ('a')); } template < class charT > void g (charT) { } int h () { return f< char > (), 0; } test.cpp: In instantiation of 'void f() [with charT = char]': test.cpp:14:23: required from here test.cpp:4:5: error: 'g' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] test.cpp:8:6: note: 'template<class charT> void g(charT)' declared here, later in the translation unit The culprits are test_hash, test_weight_val, etc. Comeau and gcc fail, icc and SUNPro CC pass. > [gcc 4.7.1/Linux] 22.locale.collate.cpp compilation failure > ----------------------------------------------------------- > > Key: STDCXX-1070 > URL: https://issues.apache.org/jira/browse/STDCXX-1070 > Project: C++ Standard Library > Issue Type: Bug > Components: Tests > Affects Versions: 4.2.x, 4.3.x, 5.0.0 > Environment: $ uname -a; gcc -v 2>&1 | tail -n 1 > Linux behemoth 2.6.37.6 #3 SMP Sat Apr 9 22:49:32 CDT 2011 x86_64 AMD > Opteron(tm) Processor 6134 AuthenticAMD GNU/Linux > gcc version 4.7.1 (GCC) > Reporter: Liviu Nicoara > Priority: Trivial > Fix For: 4.2.x, 4.3.x, 5.0.0 > > Original Estimate: 1h > Remaining Estimate: 1h > > Definitions of support template function occur after their use. The following > test case fails: > $ cat test.cpp; gcc -c test.cpp > template < class charT > > void f () > { > g (charT ('a')); > } > template < class charT > > void g (charT) > { > } > int h () > { > return f< char > (), 0; > } > test.cpp: In instantiation of 'void f() \[with charT = char\]': > test.cpp:14:23: required from here > test.cpp:4:5: error: 'g' was not declared in this scope, and no declarations > were found by argument-dependent lookup at the point of instantiation > \[-fpermissive\] > test.cpp:8:6: note: 'template<class charT> void g(charT)' declared here, > later in the translation unit > The culprits are test_hash, test_weight_val, etc. Comeau and gcc fail, icc > and SUNPro CC pass. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira