55th Cygnus<->FSF merge

From-SVN: r8849
This commit is contained in:
Mike Stump 1995-02-01 19:28:29 +00:00
parent 74356a720d
commit 1038f4f99a
4 changed files with 20 additions and 3 deletions

View File

@ -3,6 +3,18 @@ Wed Jan 25 15:02:09 1995 David S. Miller (davem@nadzieja.rutgers.edu)
* 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.

View File

@ -1729,7 +1729,10 @@ build_method_call (instance, name, parms, basetype_path, flags)
}
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

View File

@ -2789,7 +2789,7 @@ finish_file ()
/* 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);
@ -2813,7 +2813,6 @@ finish_file ()
if (TREE_STATIC (vars))
expand_end_cond ();
}
vars = TREE_CHAIN (vars);
}
for (; static_dtors; static_dtors = TREE_CHAIN (static_dtors))

View File

@ -199,6 +199,9 @@ build_signature_pointer_or_reference_type (to_type, constp, volatilep, refp)
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;
}
{