[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Bug c++/34950] [4.2/4.3 Regression] ICE in svn boost math toolkit




------- Comment #15 from mark at codesourcery dot com  2008-02-19 06:15 -------
Subject: Re:  [4.2/4.3 Regression] ICE in svn boost math toolkit

rguenth at gcc dot gnu dot org wrote:
> ------- Comment #14 from rguenth at gcc dot gnu dot org  2008-02-12 23:19 -------
> It looks like simply deleting from dependent_type_p:
> 
>   /* If there are no template parameters in scope, then there can't be
>      any dependent types.  */
>   if (!processing_template_decl)
>     {
>       /* If we are not processing a template, then nobody should be
>          providing us with a dependent type.  */
>       gcc_assert (type);
>       gcc_assert (TREE_CODE (type) != TEMPLATE_TYPE_PARM);
>       return false;
>     }
> 
> fixes the testcase - so we are probably not setting processing_template_decl
> correctly(?).  Or is it even correct and the check in the context of
> the caller make_typename_type is simply bogus?

We definitely don't want to delete that from dependent_type_p; it's a 
vital optimization.  I think the usage in make_typename_type is correct; 
when CONTEXT is a dependent type, we have to make a real TYPENAME_TYPE; 
when it's not, we can figure out what's being referenced immediately.

What does the stack trace look like at the point we're crashing?  What 
typename type are trying to simplify?


-- 


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

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


Reply to: