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

Manuel López-Ibáñez <manu at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |paolo.carlini at oracle dot com

--- Comment #21 from Manuel López-Ibáñez <manu at gcc dot gnu.org> ---
(In reply to Christian Ehrhardt from comment #5)
> From: "Christian Ehrhardt" <ehrha...@mathematik.uni-ulm.de>
> To: gcc-gn...@gcc.gnu.org, gcc-bugs@gcc.gnu.org, ca...@alinoe.com,
>   g...@gcc.gnu.org, gcc-...@gcc.gnu.org, mar...@loewis.home.cs.tu-berlin.de
> Cc:  
> Subject: Re: c++/99: [2003-03-26] Bug in type in error message.
> Date: Tue, 6 May 2003 15:04:23 +0200
> 
>  Here's a further reduced testcase, along with some more analysis:
>  
>   template<typename S> class X {};
>   template<typename Q> int f(X<int>, X<Q>);
>   template<typename B> int f(X<B>, X<int>);
>  
>   int main(void) {
>      return f(X<int>(), X<int>());
>   }
>  

For this testcase, the problem is that:

(gdb) p debug_tree(arglist)
 <tree_vec 0x7ffff7570d40
    elt 0 <template_type_parm 0x7ffff7566348 Q VOID
        align 8 symtab 0 alias set -1 canonical type 0x7ffff7566150
       index 0 level 1 orig_level 1
        chain <type_decl 0x7ffff755fc38 Q>>>

and

(gdb) p debug_tree(arglist)
 <tree_vec 0x7ffff7570e60
    elt 0 <template_type_parm 0x7ffff7566690 B VOID
        align 8 symtab 0 alias set -1 canonical type 0x7ffff7566150
       index 0 level 1 orig_level 1
        chain <type_decl 0x7ffff755ff18 B>>>

have the same hash:

(gdb) p hash
$128 = 3284467468

I am not sure whether we should change the hashing function or whether we
should add some additional check. But what kind of check?

Reply via email to