This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/15664] Linker fails to find (inline) function


------- Additional Comments From bangerth at dealii dot org  2004-05-26 20:56 -------
Alright, that's better. I think this actually shows a gcc bug: 
------------------ 
template <int N> struct S { 
    template<template<typename> class A> 
    friend void foo(); 
}; 
 
template<template<typename> class A> 
void foo(); 
 
template <typename> struct X {}; 
 
int main () { 
  S<1> s; 
  foo<X>(); 
} 
------------------- 
The friend declaration should inject the name into the global namespace, 
and it should be identified with the other declaration. However, we get 
this: 
 
g/x> /home/bangerth/bin/gcc-3.3.4-pre/bin/c++ -c x.cc 
x.cc: In function `int main()': 
x.cc:13: error: call of overloaded `foo()' is ambiguous 
x.cc:7: error: candidates are: void foo() [with A = X] 
x.cc:3: error:                 void foo() [with A = X, int N = 1] 
 
(Note also that the last line is pretty bad, since it lists the 
template argument to the enclosing class, which, however, isn't 
specified at all in the rest of the line.) Interestingly enough, 
the error goes away if  
a) S is made a non-template 
b) foo takes as template argument not a template template parameter, 
   but a regular type or value 
 
May someone else try to figure out from this what's going wrong. 
 
This bug is on all versions of gcc. 
 
W. 

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
      Known to fail|                            |2.95.3 3.3.4 3.4.0
   Last reconfirmed|0000-00-00 00:00:00         |2004-05-26 20:56:41
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15664


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]