* class.c (instantiate_type): Change error message text.
* typeck2.c (store_init_value): Likewise.
+Wed Feb 1 10:12:14 1995 Mike Stump <mrs@cygnus.com>
+
+ * decl2.c (finish_file): Fix bug in Jan 31st change.
+
+Tue Jan 31 16:59:15 1995 Gerald Baumgartner (gb@lorenzo.cs.purdue.edu)
+
+ * sig.c (build_signature_pointer_or_reference_type): Don't set
+ IS_AGGR_TYPE for signature pointers/reference so expand_default_init
+ doesn't expect to find a copy constructor.
+ * call.c (build_method_call): Treat signature pointers/reference
+ as if IS_AGGR_TYPE were set.
+
Tue Jan 31 13:28:56 1995 Mike Stump <mrs@cygnus.com>
* gc.c (get_typeid): Pawn off error messages to build_t_desc.
}
else
{
- if (! IS_AGGR_TYPE (basetype))
+ if (! IS_AGGR_TYPE (basetype)
+ && ! (TYPE_LANG_SPECIFIC (basetype)
+ && (IS_SIGNATURE_POINTER (basetype)
+ || IS_SIGNATURE_REFERENCE (basetype))))
goto non_aggr_error;
/* If `instance' is a signature pointer/reference and `name' is
/* These must be done in backward order to destroy,
in which they happen to be! */
- while (vars)
+ for (vars = static_aggregates; vars; vars = TREE_CHAIN (vars))
{
tree decl = TREE_VALUE (vars);
tree type = TREE_TYPE (decl);
if (TREE_STATIC (vars))
expand_end_cond ();
}
- vars = TREE_CHAIN (vars);
}
for (; static_dtors; static_dtors = TREE_CHAIN (static_dtors))
CLASSTYPE_VFIELD (t) = vptr;
DECL_FCONTEXT (CLASSTYPE_VFIELD (t)) = t;
TYPE_ALIGN (t) = TYPE_ALIGN (optr_type);
+
+ /* A signature pointer/reference isn't a `real' class. */
+ IS_AGGR_TYPE (t) = 0;
}
{