Comment 6 for bug 541425

Revision history for this message
In , Rguenth (rguenth) wrote :

Confirmed.

../aclib/aclib.cpp(35): error: no instance of function template "ACSearch::Grapher::simple_output" matches the argument list
            argument types are: (acSearcher)
    std::basic_string<char> output = Grapher::simple_output(*s);
                                     ^
Reduced testcase for the ICE:

template<typename _CharT> struct char_traits;
namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
    template<typename _Tp> class new_allocator { };
}
namespace std __attribute__ ((__visibility__ ("default"))) {
    template<typename _Tp>
    class allocator: public __gnu_cxx::new_allocator<_Tp> { };
    template<typename _CharT, typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<_CharT> > class basic_string;
    template<typename _CharT, typename _Traits, typename _Alloc>
    class basic_string {
    };
}
template<typename T> int eq_cmp(T a, T b){ }
template<typename T> int unsafe_case_cmp(T a, T b){ }
template<typename T, int (*cmp_fn)(T, T) = eq_cmp> class Searcher{ };
class Grapher{
    template <typename T>
    static std::basic_string<T> simple_output(Searcher<T> &sch){ }
};
typedef Searcher<char, unsafe_case_cmp> acSearcher;
void ac_print_dot(acSearcher *s){
    std::basic_string<char> output = Grapher::simple_output(*s);
}