Launchpad has imported 7 comments from the remote bug at
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44629.

If you reply to an imported comment from within Launchpad, your comment
will be sent to the remote bug automatically. Read more about
Launchpad's inter-bugtracker facilities at
https://help.launchpad.net/InterBugTracking.

------------------------------------------------------------------------
On 2010-06-22T09:56:54+00:00 Matthias Klose wrote:

seen with 4.3, 4.4, 4.5, 4.6

$ gcc-4.5 -c aclib.ii 
../aclib/aclib.cpp: In function 'void ac_print_dot(acSearcher*)':
../aclib/aclib.cpp:35:61: internal compiler error: in unify, at cp/pt.c:15155
Please submit a full bug report,
with preprocessed source if appropriate.

Reply at: https://bugs.launchpad.net/gcc/+bug/541425/comments/3

------------------------------------------------------------------------
On 2010-06-22T09:57:48+00:00 Matthias Klose wrote:

Created attachment 20976
preprocessed source

Reply at: https://bugs.launchpad.net/gcc/+bug/541425/comments/4

------------------------------------------------------------------------
On 2010-06-22T11:04:53+00:00 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);
}

Reply at: https://bugs.launchpad.net/gcc/+bug/541425/comments/6

------------------------------------------------------------------------
On 2010-06-22T16:46:02+00:00 Jakub-gcc wrote:

3.4 gives here:
pr44629.C:23: sorry, unimplemented: use of `overload' in template type 
unification
pr44629.C:23: error: no matching function for call to 
`Grapher::simple_output(Searcher<char, unsafe_case_cmp [with T = char]>&)'
 int unsafe_case_cmp(T, T) [with T = char]

So it is a regression.

Reply at: https://bugs.launchpad.net/gcc/+bug/541425/comments/7

------------------------------------------------------------------------
On 2011-03-04T00:54:56+00:00 Jason-gcc wrote:

Same ICE on valid testcase:

template<typename T> int cmp1(T a, T b);
template<typename T> int cmp2(T a, T b);
template<typename T, int (*cmp)(T, T) = cmp1> struct A { };
template <typename T> void f (A<T> &);
void g()
{
  A<char> a;
  f(a);
}

though 3.4 didn't accept it, it gave the same sorry, so it isn't a big
regression.

Reply at: https://bugs.launchpad.net/gcc/+bug/541425/comments/8

------------------------------------------------------------------------
On 2011-03-04T22:24:30+00:00 Jason-gcc wrote:

Created attachment 23550
WIP patch to accept my testcase

Here's a patch that makes my testcase work.  I don't want to put it in
4.6 because it produces mangling different from the EDG compiler, and
want to clarify how it should mangle first.

Reply at: https://bugs.launchpad.net/gcc/+bug/541425/comments/9

------------------------------------------------------------------------
On 2011-03-04T22:30:16+00:00 Jason-gcc wrote:

Created attachment 23551
WIP patch to make the testcase sorry as before

And here's a patch that just restores the previous sorry behavior.  Do
you think it's worth applying this to 4.6?

Reply at: https://bugs.launchpad.net/gcc/+bug/541425/comments/10


** Changed in: gcc
   Importance: Unknown => Medium

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/541425

Title:
  [PR44629] internal compiler error in unify

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to