[PATCH] [Annotalysis] Fix internal compiler error on template methods

Diego Novillo dnovillo@google.com
Thu Sep 29 20:36:00 GMT 2011


On 11-09-29 13:21 , Delesley Hutchins wrote:
> I don't have a test case, but look at the definitions of the two
> macros in cp/cp-tree.h. DECL_CLONED_FUNCTION_P calls
> decl_cloned_function_p, passing true as the second argument,  while
> DECL_CLONED_FUNCTION makes the same call, but passes false.  Now look
> at the definition of  decl_cloned_function_p in cp/class.c.  If the
> second argument is true, it will step into templates, and if it is
> false, it won't.  Incidentally, the ICE occurs when
> DECL_CLONED_FUNCTION is applied to a template function, so this is not
> a hypothetical case.  :-)

But notice that STRIP_TEMPLATE is a NOP when DECL is not a 
TEMPLATE_DECL.  So, I'm not sure where you saw it ICE.  We are already 
using this idiom all over the parser, so it would be great if you could 
produce a test case for the failure you have in mind.

Incidentally, I applied the variant of the patch Ollie and I suggested 
and the testcase works fine with it (while it fails without the patch, 
of course).


Diego.



More information about the Gcc-patches mailing list