+2004-05-23 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/15165
+ * pt.c (instantiate_template): Robustify.
+
2004-05-23 Mark Mitchell <mark@codesourcery.com>
PR c++/15025
/* If this function is a clone, handle it specially. */
if (DECL_CLONED_FUNCTION_P (tmpl))
{
- tree spec = instantiate_template (DECL_CLONED_FUNCTION (tmpl), targ_ptr,
- complain);
+ tree spec;
tree clone;
+ spec = instantiate_template (DECL_CLONED_FUNCTION (tmpl), targ_ptr,
+ complain);
+ if (spec == error_mark_node)
+ return error_mark_node;
+
/* Look for the clone. */
for (clone = TREE_CHAIN (spec);
clone && DECL_CLONED_FUNCTION_P (clone);
--- /dev/null
+// PR c++/15165
+
+struct S
+{
+ template <class T> S(const T &e);
+};
+int operator *(const double, const S &);
+template <class T>
+struct X {
+ enum { SIXTY_FOUR=64 };
+ struct node {
+ unsigned char *ptr[sizeof(T)*SIXTY_FOUR];
+ void d() {}
+ };
+ node *head;
+};
+template struct X<int>;