parent
065bbfe6bf
commit
beb53fb84a
|
@ -1,3 +1,7 @@
|
|||
Mon May 5 14:46:53 1997 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* call.c (build_new_op): Handle null arg2 for ?:.
|
||||
|
||||
Thu May 1 18:26:37 1997 Mike Stump <mrs@cygnus.com>
|
||||
|
||||
* except.c (expand_exception_blocks): Ensure that we flow through
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Functions related to invoking methods and overloaded functions.
|
||||
Copyright (C) 1987, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
|
||||
Copyright (C) 1987, 92, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Michael Tiemann (tiemann@cygnus.com) and
|
||||
hacked by Brendan Kehoe (brendan@cygnus.com).
|
||||
|
||||
|
@ -1896,8 +1896,8 @@ build_method_call (instance, name, parms, basetype_path, flags)
|
|||
/* The MAIN_VARIANT of the type that `instance_ptr' winds up being. */
|
||||
tree inst_ptr_basetype;
|
||||
|
||||
static_call_context =
|
||||
(TREE_CODE (instance) == INDIRECT_REF
|
||||
static_call_context
|
||||
= (TREE_CODE (instance) == INDIRECT_REF
|
||||
&& TREE_CODE (TREE_OPERAND (instance, 0)) == NOP_EXPR
|
||||
&& TREE_OPERAND (TREE_OPERAND (instance, 0), 0) == error_mark_node);
|
||||
|
||||
|
@ -1997,8 +1997,9 @@ build_method_call (instance, name, parms, basetype_path, flags)
|
|||
if (basetype_path == NULL_TREE
|
||||
&& IS_SIGNATURE (basetype))
|
||||
basetype_path = TYPE_BINFO (basetype);
|
||||
else if (basetype_path == NULL_TREE ||
|
||||
BINFO_TYPE (basetype_path) != TYPE_MAIN_VARIANT (inst_ptr_basetype))
|
||||
else if (basetype_path == NULL_TREE
|
||||
|| (BINFO_TYPE (basetype_path)
|
||||
!= TYPE_MAIN_VARIANT (inst_ptr_basetype)))
|
||||
basetype_path = TYPE_BINFO (inst_ptr_basetype);
|
||||
|
||||
result = build_field_call (basetype_path, instance_ptr, name, parms);
|
||||
|
@ -4607,7 +4608,8 @@ build_new_op (code, flags, arg1, arg2, arg3)
|
|||
|
||||
if (code == COND_EXPR)
|
||||
{
|
||||
if (TREE_CODE (TREE_TYPE (arg2)) == VOID_TYPE
|
||||
if (arg2 == NULL_TREE
|
||||
|| TREE_CODE (TREE_TYPE (arg2)) == VOID_TYPE
|
||||
|| TREE_CODE (TREE_TYPE (arg3)) == VOID_TYPE
|
||||
|| (! IS_OVERLOAD_TYPE (TREE_TYPE (arg2))
|
||||
&& ! IS_OVERLOAD_TYPE (TREE_TYPE (arg3))))
|
||||
|
@ -5046,8 +5048,8 @@ build_over_call (fn, convs, args, flags)
|
|||
< TYPE_VOLATILE (TREE_TYPE (argtype)));
|
||||
int dc = (TYPE_READONLY (TREE_TYPE (parmtype))
|
||||
< TYPE_READONLY (TREE_TYPE (argtype)));
|
||||
char *p = (dv && dc ? "const and volatile" :
|
||||
dc ? "const" : dv ? "volatile" : "");
|
||||
char *p = (dv && dc ? "const and volatile"
|
||||
: dc ? "const" : dv ? "volatile" : "");
|
||||
|
||||
cp_pedwarn ("passing `%T' as `this' argument of `%#D' discards %s",
|
||||
TREE_TYPE (argtype), fn, p);
|
||||
|
@ -5310,8 +5312,8 @@ build_new_method_call (instance, name, args, basetype_path, flags)
|
|||
TREE_TYPE (instance_ptr) = build_pointer_type (basetype);
|
||||
}
|
||||
|
||||
pretty_name =
|
||||
(name == ctor_identifier ? constructor_name_full (basetype) : name);
|
||||
pretty_name
|
||||
= (name == ctor_identifier ? constructor_name_full (basetype) : name);
|
||||
|
||||
fns = lookup_fnfields (basetype_path, name, 1);
|
||||
|
||||
|
|
|
@ -2144,8 +2144,8 @@ finish_vtbls (binfo, do_self, t)
|
|||
for (i = 0; i < n_baselinks; i++)
|
||||
{
|
||||
tree base_binfo = TREE_VEC_ELT (binfos, i);
|
||||
int is_not_base_vtable =
|
||||
i != CLASSTYPE_VFIELD_PARENT (BINFO_TYPE (binfo));
|
||||
int is_not_base_vtable
|
||||
= i != CLASSTYPE_VFIELD_PARENT (BINFO_TYPE (binfo));
|
||||
if (TREE_VIA_VIRTUAL (base_binfo))
|
||||
{
|
||||
base_binfo = binfo_member (BINFO_TYPE (base_binfo), CLASSTYPE_VBASECLASSES (t));
|
||||
|
@ -2162,11 +2162,11 @@ overrides (fndecl, base_fndecl)
|
|||
tree fndecl, base_fndecl;
|
||||
{
|
||||
/* Destructors have special names. */
|
||||
if (DESTRUCTOR_NAME_P (DECL_ASSEMBLER_NAME (base_fndecl)) &&
|
||||
DESTRUCTOR_NAME_P (DECL_ASSEMBLER_NAME (fndecl)))
|
||||
if (DESTRUCTOR_NAME_P (DECL_ASSEMBLER_NAME (base_fndecl))
|
||||
&& DESTRUCTOR_NAME_P (DECL_ASSEMBLER_NAME (fndecl)))
|
||||
return 1;
|
||||
if (DESTRUCTOR_NAME_P (DECL_ASSEMBLER_NAME (base_fndecl)) ||
|
||||
DESTRUCTOR_NAME_P (DECL_ASSEMBLER_NAME (fndecl)))
|
||||
if (DESTRUCTOR_NAME_P (DECL_ASSEMBLER_NAME (base_fndecl))
|
||||
|| DESTRUCTOR_NAME_P (DECL_ASSEMBLER_NAME (fndecl)))
|
||||
return 0;
|
||||
if (DECL_NAME (fndecl) == DECL_NAME (base_fndecl))
|
||||
{
|
||||
|
@ -2397,8 +2397,8 @@ modify_all_direct_vtables (binfo, do_self, t, fndecl, pfn)
|
|||
for (i = 0; i < n_baselinks; i++)
|
||||
{
|
||||
tree base_binfo = TREE_VEC_ELT (binfos, i);
|
||||
int is_not_base_vtable =
|
||||
i != CLASSTYPE_VFIELD_PARENT (BINFO_TYPE (binfo));
|
||||
int is_not_base_vtable
|
||||
= i != CLASSTYPE_VFIELD_PARENT (BINFO_TYPE (binfo));
|
||||
if (! TREE_VIA_VIRTUAL (base_binfo))
|
||||
modify_all_direct_vtables (base_binfo, is_not_base_vtable, t, fndecl, pfn);
|
||||
}
|
||||
|
@ -2493,8 +2493,8 @@ fixup_vtable_deltas (binfo, init_self, t)
|
|||
for (i = 0; i < n_baselinks; i++)
|
||||
{
|
||||
tree base_binfo = TREE_VEC_ELT (binfos, i);
|
||||
int is_not_base_vtable =
|
||||
i != CLASSTYPE_VFIELD_PARENT (BINFO_TYPE (binfo));
|
||||
int is_not_base_vtable
|
||||
= i != CLASSTYPE_VFIELD_PARENT (BINFO_TYPE (binfo));
|
||||
if (! TREE_VIA_VIRTUAL (base_binfo))
|
||||
fixup_vtable_deltas (base_binfo, is_not_base_vtable, t);
|
||||
}
|
||||
|
@ -2525,8 +2525,8 @@ modify_all_indirect_vtables (binfo, do_self, via_virtual, t, fndecl, pfn)
|
|||
for (i = 0; i < n_baselinks; i++)
|
||||
{
|
||||
tree base_binfo = TREE_VEC_ELT (binfos, i);
|
||||
int is_not_base_vtable =
|
||||
i != CLASSTYPE_VFIELD_PARENT (BINFO_TYPE (binfo));
|
||||
int is_not_base_vtable
|
||||
= i != CLASSTYPE_VFIELD_PARENT (BINFO_TYPE (binfo));
|
||||
if (TREE_VIA_VIRTUAL (base_binfo))
|
||||
{
|
||||
via_virtual = 1;
|
||||
|
@ -2705,8 +2705,8 @@ merge_overrides (binfo, old, do_self, t)
|
|||
{
|
||||
tree base_binfo = TREE_VEC_ELT (binfos, i);
|
||||
tree old_base_binfo = TREE_VEC_ELT (old_binfos, i);
|
||||
int is_not_base_vtable =
|
||||
i != CLASSTYPE_VFIELD_PARENT (BINFO_TYPE (binfo));
|
||||
int is_not_base_vtable
|
||||
= i != CLASSTYPE_VFIELD_PARENT (BINFO_TYPE (binfo));
|
||||
if (! TREE_VIA_VIRTUAL (base_binfo))
|
||||
merge_overrides (base_binfo, old_base_binfo, is_not_base_vtable, t);
|
||||
}
|
||||
|
@ -3221,8 +3221,9 @@ finish_struct_1 (t, warn_anon)
|
|||
tree ctype = DECL_INITIAL (x);
|
||||
tree sname = DECL_NAME (x);
|
||||
tree access
|
||||
= TREE_PRIVATE (x) ? access_private_node :
|
||||
TREE_PROTECTED (x) ? access_protected_node : access_public_node;
|
||||
= TREE_PRIVATE (x) ? access_private_node
|
||||
: TREE_PROTECTED (x) ? access_protected_node
|
||||
: access_public_node;
|
||||
tree fdecl, binfo;
|
||||
|
||||
if (last_x)
|
||||
|
@ -4606,8 +4607,8 @@ pushclass (type, modify)
|
|||
*current_class_stack++ = current_class_type;
|
||||
if (current_class_stack >= current_class_base + current_class_stacksize)
|
||||
{
|
||||
current_class_base =
|
||||
(tree *)xrealloc (current_class_base,
|
||||
current_class_base
|
||||
= (tree *)xrealloc (current_class_base,
|
||||
sizeof (tree) * (current_class_stacksize + 10));
|
||||
current_class_stack = current_class_base + current_class_stacksize;
|
||||
current_class_stacksize += 10;
|
||||
|
@ -4790,8 +4791,8 @@ push_lang_context (name)
|
|||
*current_lang_stack++ = current_lang_name;
|
||||
if (current_lang_stack >= current_lang_base + current_lang_stacksize)
|
||||
{
|
||||
current_lang_base =
|
||||
(tree *)xrealloc (current_lang_base,
|
||||
current_lang_base
|
||||
= (tree *)xrealloc (current_lang_base,
|
||||
sizeof (tree) * (current_lang_stacksize + 10));
|
||||
current_lang_stack = current_lang_base + current_lang_stacksize;
|
||||
current_lang_stacksize += 10;
|
||||
|
@ -5257,8 +5258,8 @@ instantiate_type (lhstype, rhs, complain)
|
|||
TREE_TYPE (rhs) = lhstype;
|
||||
TREE_OPERAND (rhs, 0) = fn;
|
||||
TREE_CONSTANT (rhs) = staticp (fn);
|
||||
if (TREE_CODE (lhstype) == POINTER_TYPE &&
|
||||
TREE_CODE (TREE_TYPE (lhstype)) == METHOD_TYPE)
|
||||
if (TREE_CODE (lhstype) == POINTER_TYPE
|
||||
&& TREE_CODE (TREE_TYPE (lhstype)) == METHOD_TYPE)
|
||||
{
|
||||
build_ptrmemfunc_type (lhstype);
|
||||
rhs = build_ptrmemfunc (lhstype, rhs, 0);
|
||||
|
|
|
@ -707,8 +707,8 @@ convert_to_aggr (type, expr, msgp, protect)
|
|||
{
|
||||
int saw_private = 0;
|
||||
int saw_protected = 0;
|
||||
struct candidate *candidates =
|
||||
(struct candidate *) alloca ((decl_list_length (fndecl)+1) * sizeof (struct candidate));
|
||||
struct candidate *candidates
|
||||
= (struct candidate *) alloca ((decl_list_length (fndecl)+1) * sizeof (struct candidate));
|
||||
struct candidate *cp = candidates;
|
||||
|
||||
while (fndecl)
|
||||
|
|
|
@ -1820,8 +1820,8 @@ maybe_push_to_top_level (pseudo)
|
|||
int pseudo;
|
||||
{
|
||||
extern int current_lang_stacksize;
|
||||
struct saved_scope *s =
|
||||
(struct saved_scope *) xmalloc (sizeof (struct saved_scope));
|
||||
struct saved_scope *s
|
||||
= (struct saved_scope *) xmalloc (sizeof (struct saved_scope));
|
||||
struct binding_level *b = inner_binding_level;
|
||||
tree old_bindings = NULL_TREE;
|
||||
|
||||
|
@ -4707,8 +4707,8 @@ init_decl_processing ()
|
|||
/* Define `char', which is like either `signed char' or `unsigned char'
|
||||
but not the same as either. */
|
||||
|
||||
char_type_node =
|
||||
(flag_signed_char
|
||||
char_type_node
|
||||
= (flag_signed_char
|
||||
? make_signed_type (CHAR_TYPE_SIZE)
|
||||
: make_unsigned_type (CHAR_TYPE_SIZE));
|
||||
record_builtin_type (RID_CHAR, "char", char_type_node);
|
||||
|
@ -4843,8 +4843,8 @@ init_decl_processing ()
|
|||
TREE_TYPE (void_zero_node) = void_type_node;
|
||||
|
||||
string_type_node = build_pointer_type (char_type_node);
|
||||
const_string_type_node =
|
||||
build_pointer_type (build_type_variant (char_type_node, 1, 0));
|
||||
const_string_type_node
|
||||
= build_pointer_type (build_type_variant (char_type_node, 1, 0));
|
||||
#if 0
|
||||
record_builtin_type (RID_MAX, NULL_PTR, string_type_node);
|
||||
#endif
|
||||
|
@ -4873,8 +4873,8 @@ init_decl_processing ()
|
|||
= build_function_type (integer_type_node, NULL_TREE);
|
||||
|
||||
ptr_type_node = build_pointer_type (void_type_node);
|
||||
const_ptr_type_node =
|
||||
build_pointer_type (build_type_variant (void_type_node, 1, 0));
|
||||
const_ptr_type_node
|
||||
= build_pointer_type (build_type_variant (void_type_node, 1, 0));
|
||||
#if 0
|
||||
record_builtin_type (RID_MAX, NULL_PTR, ptr_type_node);
|
||||
#endif
|
||||
|
@ -4964,8 +4964,8 @@ init_decl_processing ()
|
|||
builtin_function ("__builtin_constant_p", int_ftype_int,
|
||||
BUILT_IN_CONSTANT_P, NULL_PTR);
|
||||
|
||||
builtin_return_address_fndecl =
|
||||
builtin_function ("__builtin_return_address", ptr_ftype_unsigned,
|
||||
builtin_return_address_fndecl
|
||||
= builtin_function ("__builtin_return_address", ptr_ftype_unsigned,
|
||||
BUILT_IN_RETURN_ADDRESS, NULL_PTR);
|
||||
|
||||
builtin_function ("__builtin_frame_address", ptr_ftype_unsigned,
|
||||
|
@ -5278,12 +5278,15 @@ init_decl_processing ()
|
|||
__t_desc_type_node = make_lang_type (RECORD_TYPE);
|
||||
__i_desc_type_node = make_lang_type (RECORD_TYPE);
|
||||
__m_desc_type_node = make_lang_type (RECORD_TYPE);
|
||||
__t_desc_array_type =
|
||||
build_array_type (build_pointer_type (__t_desc_type_node), NULL_TREE);
|
||||
__i_desc_array_type =
|
||||
build_array_type (build_pointer_type (__i_desc_type_node), NULL_TREE);
|
||||
__m_desc_array_type =
|
||||
build_array_type (build_pointer_type (__m_desc_type_node), NULL_TREE);
|
||||
__t_desc_array_type
|
||||
= build_array_type (build_pointer_type (__t_desc_type_node),
|
||||
NULL_TREE);
|
||||
__i_desc_array_type
|
||||
= build_array_type (build_pointer_type (__i_desc_type_node),
|
||||
NULL_TREE);
|
||||
__m_desc_array_type
|
||||
= build_array_type (build_pointer_type (__m_desc_type_node),
|
||||
NULL_TREE);
|
||||
|
||||
fields[0] = build_lang_field_decl (FIELD_DECL, get_identifier ("name"),
|
||||
string_type_node);
|
||||
|
@ -6816,8 +6819,8 @@ expand_static_init (decl, init)
|
|||
pfvlist = tree_cons (NULL_TREE, PFV, void_list_node);
|
||||
|
||||
push_lang_context (lang_name_c);
|
||||
atexit_fndecl =
|
||||
builtin_function ("atexit",
|
||||
atexit_fndecl
|
||||
= builtin_function ("atexit",
|
||||
build_function_type (void_type_node,
|
||||
pfvlist),
|
||||
NOT_BUILT_IN, NULL_PTR);
|
||||
|
@ -7845,8 +7848,8 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
|
|||
}
|
||||
else if (RIDBIT_SETP (RID_TYPEDEF, specbits))
|
||||
pedwarn ("ANSI C++ forbids typedef which does not specify a type");
|
||||
else if (declspecs == NULL_TREE &&
|
||||
(innermost_code != CALL_EXPR || pedantic))
|
||||
else if (declspecs == NULL_TREE
|
||||
&& (innermost_code != CALL_EXPR || pedantic))
|
||||
cp_pedwarn ("ANSI C++ forbids declaration `%D' with no type or storage class",
|
||||
dname);
|
||||
type = integer_type_node;
|
||||
|
@ -8342,8 +8345,8 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
|
|||
}
|
||||
}
|
||||
|
||||
itype =
|
||||
fold (build_binary_op (MINUS_EXPR,
|
||||
itype
|
||||
= fold (build_binary_op (MINUS_EXPR,
|
||||
convert (index_type, size),
|
||||
convert (index_type,
|
||||
integer_one_node), 1));
|
||||
|
@ -8437,8 +8440,8 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
|
|||
|
||||
/* Say it's a definition only for the CALL_EXPR
|
||||
closest to the identifier. */
|
||||
funcdecl_p =
|
||||
inner_decl && (TREE_CODE (inner_decl) == IDENTIFIER_NODE
|
||||
funcdecl_p
|
||||
= inner_decl && (TREE_CODE (inner_decl) == IDENTIFIER_NODE
|
||||
|| TREE_CODE (inner_decl) == BIT_NOT_EXPR);
|
||||
|
||||
if (ctype == NULL_TREE
|
||||
|
@ -8503,8 +8506,8 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
|
|||
error ("return value type specifier for constructor ignored");
|
||||
}
|
||||
type = build_pointer_type (ctype);
|
||||
if (decl_context == FIELD &&
|
||||
IS_SIGNATURE (current_class_type))
|
||||
if (decl_context == FIELD
|
||||
&& IS_SIGNATURE (current_class_type))
|
||||
{
|
||||
error ("constructor not allowed in signature");
|
||||
return void_type_node;
|
||||
|
@ -8819,8 +8822,8 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
|
|||
else if (uses_template_parms (ctype))
|
||||
{
|
||||
if (TREE_CODE (type) == FUNCTION_TYPE)
|
||||
type =
|
||||
build_cplus_method_type (build_type_variant (ctype,
|
||||
type
|
||||
= build_cplus_method_type (build_type_variant (ctype,
|
||||
constp,
|
||||
volatilep),
|
||||
TREE_TYPE (type),
|
||||
|
@ -9982,8 +9985,8 @@ grok_op_properties (decl, virtualp, friendp)
|
|||
|
||||
/* Take care of function decl if we had syntax errors. */
|
||||
if (argtypes == NULL_TREE)
|
||||
TREE_TYPE (decl) =
|
||||
build_function_type (ptr_type_node,
|
||||
TREE_TYPE (decl)
|
||||
= build_function_type (ptr_type_node,
|
||||
hash_tree_chain (integer_type_node,
|
||||
void_list_node));
|
||||
else
|
||||
|
@ -9996,8 +9999,8 @@ grok_op_properties (decl, virtualp, friendp)
|
|||
revert_static_member_fn (&decl, NULL, NULL);
|
||||
|
||||
if (argtypes == NULL_TREE)
|
||||
TREE_TYPE (decl) =
|
||||
build_function_type (void_type_node,
|
||||
TREE_TYPE (decl)
|
||||
= build_function_type (void_type_node,
|
||||
hash_tree_chain (ptr_type_node,
|
||||
void_list_node));
|
||||
else
|
||||
|
@ -11673,10 +11676,9 @@ finish_function (lineno, call_poplevel, nested)
|
|||
/* At the end, call delete if that's what's requested. */
|
||||
if (TYPE_GETS_REG_DELETE (current_class_type))
|
||||
/* This NOP_EXPR means we are in a static call context. */
|
||||
exprstmt =
|
||||
build_method_call
|
||||
(build_indirect_ref
|
||||
(build1 (NOP_EXPR, build_pointer_type (current_class_type),
|
||||
exprstmt
|
||||
= build_method_call (build_indirect_ref (build1 (NOP_EXPR,
|
||||
build_pointer_type (current_class_type),
|
||||
error_mark_node),
|
||||
NULL_PTR),
|
||||
ansi_opname[(int) DELETE_EXPR],
|
||||
|
|
|
@ -265,8 +265,8 @@ init_exception_processing ()
|
|||
|
||||
push_lang_context (lang_name_c);
|
||||
|
||||
catch_match_fndecl =
|
||||
builtin_function (flag_rtti
|
||||
catch_match_fndecl
|
||||
= builtin_function (flag_rtti
|
||||
? "__throw_type_match_rtti"
|
||||
: "__throw_type_match",
|
||||
build_function_type (ptr_type_node,
|
||||
|
@ -275,20 +275,20 @@ init_exception_processing ()
|
|||
tree_cons (NULL_TREE, ptr_type_node,
|
||||
void_list_node)))),
|
||||
NOT_BUILT_IN, NULL_PTR);
|
||||
find_first_exception_match_fndecl =
|
||||
builtin_function ("__find_first_exception_table_match",
|
||||
find_first_exception_match_fndecl
|
||||
= builtin_function ("__find_first_exception_table_match",
|
||||
build_function_type (ptr_type_node,
|
||||
tree_cons (NULL_TREE, ptr_type_node,
|
||||
void_list_node)),
|
||||
NOT_BUILT_IN, NULL_PTR);
|
||||
unwind_fndecl =
|
||||
builtin_function ("__unwind_function",
|
||||
unwind_fndecl
|
||||
= builtin_function ("__unwind_function",
|
||||
build_function_type (void_type_node,
|
||||
tree_cons (NULL_TREE, ptr_type_node,
|
||||
void_list_node)),
|
||||
NOT_BUILT_IN, NULL_PTR);
|
||||
empty_fndecl =
|
||||
builtin_function ("__empty",
|
||||
empty_fndecl
|
||||
= builtin_function ("__empty",
|
||||
build_function_type (void_type_node, void_list_node),
|
||||
NOT_BUILT_IN, NULL_PTR);
|
||||
DECL_EXTERNAL (empty_fndecl) = 1;
|
||||
|
|
|
@ -328,8 +328,8 @@ extract_scalar_init (decl, init)
|
|||
|
||||
to = XEXP (r, 0);
|
||||
|
||||
if (! (to == value ||
|
||||
(GET_CODE (to) == SUBREG && XEXP (to, 0) == value)))
|
||||
if (! (to == value
|
||||
|| (GET_CODE (to) == SUBREG && XEXP (to, 0) == value)))
|
||||
return 0;
|
||||
|
||||
r = XEXP (r, 1);
|
||||
|
|
|
@ -202,8 +202,8 @@ add_friends (type, name, friend_type)
|
|||
}
|
||||
list = TREE_CHAIN (list);
|
||||
}
|
||||
DECL_FRIENDLIST (typedecl) =
|
||||
tree_cons (name,
|
||||
DECL_FRIENDLIST (typedecl)
|
||||
= tree_cons (name,
|
||||
build_tree_list (friend_type, NULL_TREE),
|
||||
DECL_FRIENDLIST (typedecl));
|
||||
if (! strncmp (IDENTIFIER_POINTER (name),
|
||||
|
|
|
@ -123,8 +123,8 @@ expand_direct_vtbls_init (real_binfo, binfo, init_self, can_elide, addr)
|
|||
{
|
||||
tree real_base_binfo = TREE_VEC_ELT (real_binfos, i);
|
||||
tree base_binfo = TREE_VEC_ELT (binfos, i);
|
||||
int is_not_base_vtable =
|
||||
i != CLASSTYPE_VFIELD_PARENT (BINFO_TYPE (real_binfo));
|
||||
int is_not_base_vtable
|
||||
= i != CLASSTYPE_VFIELD_PARENT (BINFO_TYPE (real_binfo));
|
||||
if (! TREE_VIA_VIRTUAL (real_base_binfo))
|
||||
expand_direct_vtbls_init (real_base_binfo, base_binfo,
|
||||
is_not_base_vtable, can_elide, addr);
|
||||
|
|
|
@ -1632,8 +1632,8 @@ hack_identifier (value, name)
|
|||
if (TREE_CODE (value) == VAR_DECL)
|
||||
error ("static member `%s' is %s",
|
||||
IDENTIFIER_POINTER (name),
|
||||
TREE_PRIVATE (value) ? "private" :
|
||||
"from a private base class");
|
||||
TREE_PRIVATE (value) ? "private"
|
||||
: "from a private base class");
|
||||
else
|
||||
error ("enum `%s' is from private base class",
|
||||
IDENTIFIER_POINTER (name));
|
||||
|
|
12
gcc/cp/pt.c
12
gcc/cp/pt.c
|
@ -1179,8 +1179,8 @@ instantiate_class_template (type)
|
|||
TREE_VEC_LENGTH (args), NULL_TREE);
|
||||
BINFO_INHERITANCE_CHAIN (elt) = binfo;
|
||||
|
||||
if (! uses_template_parms (type) &&
|
||||
TYPE_SIZE (complete_type (TREE_TYPE (elt))) == NULL_TREE)
|
||||
if (! uses_template_parms (type)
|
||||
&& TYPE_SIZE (complete_type (TREE_TYPE (elt))) == NULL_TREE)
|
||||
cp_error ("base class `%T' of `%T' has incomplete type",
|
||||
TREE_TYPE (elt), type);
|
||||
}
|
||||
|
@ -1265,8 +1265,8 @@ instantiate_class_template (type)
|
|||
&TREE_VEC_ELT (args, 0), TREE_VEC_LENGTH (args), NULL_TREE);
|
||||
|
||||
{
|
||||
tree d = CLASSTYPE_FRIEND_CLASSES (type) =
|
||||
tsubst (CLASSTYPE_FRIEND_CLASSES (pattern), &TREE_VEC_ELT (args, 0),
|
||||
tree d = CLASSTYPE_FRIEND_CLASSES (type)
|
||||
= tsubst (CLASSTYPE_FRIEND_CLASSES (pattern), &TREE_VEC_ELT (args, 0),
|
||||
TREE_VEC_LENGTH (args), NULL_TREE);
|
||||
|
||||
/* This does injection for friend classes. */
|
||||
|
@ -1600,8 +1600,8 @@ tsubst (t, args, nargs, in_decl)
|
|||
else
|
||||
SET_DECL_IMPLICIT_INSTANTIATION (r);
|
||||
|
||||
DECL_TEMPLATE_INSTANTIATIONS (tmpl) =
|
||||
tree_cons (argvec, r, DECL_TEMPLATE_INSTANTIATIONS (tmpl));
|
||||
DECL_TEMPLATE_INSTANTIATIONS (tmpl)
|
||||
= tree_cons (argvec, r, DECL_TEMPLATE_INSTANTIATIONS (tmpl));
|
||||
}
|
||||
|
||||
/* Like grokfndecl. If we don't do this, pushdecl will mess up our
|
||||
|
|
|
@ -441,8 +441,8 @@ build_dynamic_cast (type, expr)
|
|||
goto fail;
|
||||
if (TYPE_SIZE (TREE_TYPE (exprtype)) == NULL_TREE)
|
||||
goto fail;
|
||||
if (TREE_READONLY (TREE_TYPE (exprtype)) &&
|
||||
! TYPE_READONLY (TREE_TYPE (type)))
|
||||
if (TREE_READONLY (TREE_TYPE (exprtype))
|
||||
&& ! TYPE_READONLY (TREE_TYPE (type)))
|
||||
goto fail;
|
||||
if (TYPE_MAIN_VARIANT (TREE_TYPE (type)) == void_type_node)
|
||||
break;
|
||||
|
@ -477,8 +477,8 @@ build_dynamic_cast (type, expr)
|
|||
goto fail;
|
||||
if (TYPE_SIZE (TREE_TYPE (exprtype)) == NULL_TREE)
|
||||
goto fail;
|
||||
if (TREE_READONLY (TREE_TYPE (exprtype)) &&
|
||||
! TYPE_READONLY (TREE_TYPE (type)))
|
||||
if (TREE_READONLY (TREE_TYPE (exprtype))
|
||||
&& ! TYPE_READONLY (TREE_TYPE (type)))
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
@ -833,8 +833,8 @@ expand_class_desc (tdecl, type)
|
|||
{
|
||||
tree arrtype = build_array_type (base_info_type_node, NULL_TREE);
|
||||
elts = build (CONSTRUCTOR, arrtype, NULL_TREE, elts);
|
||||
TREE_HAS_CONSTRUCTOR (elts) = TREE_CONSTANT (elts) =
|
||||
TREE_STATIC (elts) = 1;
|
||||
TREE_HAS_CONSTRUCTOR (elts) = TREE_CONSTANT (elts)
|
||||
= TREE_STATIC (elts) = 1;
|
||||
complete_array_type (arrtype, elts, 1);
|
||||
}
|
||||
|
||||
|
|
|
@ -245,8 +245,8 @@ static struct memoized_entry *
|
|||
my_new_memoized_entry (chain)
|
||||
struct memoized_entry *chain;
|
||||
{
|
||||
struct memoized_entry *p =
|
||||
(struct memoized_entry *)obstack_alloc (&type_obstack_entries,
|
||||
struct memoized_entry *p
|
||||
= (struct memoized_entry *)obstack_alloc (&type_obstack_entries,
|
||||
sizeof (struct memoized_entry));
|
||||
bzero ((char *) p, sizeof (struct memoized_entry));
|
||||
MEMOIZED_CHAIN (p) = chain;
|
||||
|
@ -854,8 +854,8 @@ compute_access (basetype_path, field)
|
|||
/* Replaces static decl above. */
|
||||
tree previous_scope;
|
||||
#endif
|
||||
int static_mem =
|
||||
((TREE_CODE (field) == FUNCTION_DECL && DECL_STATIC_FUNCTION_P (field))
|
||||
int static_mem
|
||||
= ((TREE_CODE (field) == FUNCTION_DECL && DECL_STATIC_FUNCTION_P (field))
|
||||
|| (TREE_CODE (field) != FUNCTION_DECL && TREE_STATIC (field)));
|
||||
|
||||
if (! flag_access_control)
|
||||
|
@ -2182,8 +2182,8 @@ get_abstract_virtuals_1 (binfo, do_self, abstract_virtuals)
|
|||
for (i = 0; i < n_baselinks; i++)
|
||||
{
|
||||
tree base_binfo = TREE_VEC_ELT (binfos, i);
|
||||
int is_not_base_vtable =
|
||||
i != CLASSTYPE_VFIELD_PARENT (BINFO_TYPE (binfo));
|
||||
int is_not_base_vtable
|
||||
= i != CLASSTYPE_VFIELD_PARENT (BINFO_TYPE (binfo));
|
||||
if (! TREE_VIA_VIRTUAL (base_binfo))
|
||||
abstract_virtuals
|
||||
= get_abstract_virtuals_1 (base_binfo, is_not_base_vtable,
|
||||
|
@ -2887,8 +2887,8 @@ fixup_virtual_upcast_offsets (real_binfo, binfo, init_self, can_elide, addr, ori
|
|||
{
|
||||
tree real_base_binfo = TREE_VEC_ELT (real_binfos, i);
|
||||
tree base_binfo = TREE_VEC_ELT (binfos, i);
|
||||
int is_not_base_vtable =
|
||||
i != CLASSTYPE_VFIELD_PARENT (BINFO_TYPE (real_binfo));
|
||||
int is_not_base_vtable
|
||||
= i != CLASSTYPE_VFIELD_PARENT (BINFO_TYPE (real_binfo));
|
||||
if (! TREE_VIA_VIRTUAL (real_base_binfo))
|
||||
fixup_virtual_upcast_offsets (real_base_binfo, base_binfo,
|
||||
is_not_base_vtable, can_elide, addr,
|
||||
|
|
16
gcc/cp/sig.c
16
gcc/cp/sig.c
|
@ -400,8 +400,8 @@ match_method_types (sig_mtype, class_mtype)
|
|||
/* Compare the first argument `this.' */
|
||||
{
|
||||
/* Get the type of what the `optr' is pointing to. */
|
||||
tree sig_this =
|
||||
TREE_TYPE (TREE_TYPE (TYPE_FIELDS (TREE_VALUE (sig_arg_types))));
|
||||
tree sig_this
|
||||
= TREE_TYPE (TREE_TYPE (TYPE_FIELDS (TREE_VALUE (sig_arg_types))));
|
||||
tree class_this = TREE_VALUE (class_arg_types);
|
||||
|
||||
if (TREE_CODE (class_this) == RECORD_TYPE) /* Is `this' a sig ptr? */
|
||||
|
@ -790,8 +790,8 @@ build_signature_pointer_constructor (lhs, rhs)
|
|||
|
||||
if (! ((TREE_CODE (rhstype) == POINTER_TYPE
|
||||
&& TREE_CODE (TREE_TYPE (rhstype)) == RECORD_TYPE)
|
||||
|| (TYPE_LANG_SPECIFIC (rhstype) &&
|
||||
(IS_SIGNATURE_POINTER (rhstype)
|
||||
|| (TYPE_LANG_SPECIFIC (rhstype)
|
||||
&& (IS_SIGNATURE_POINTER (rhstype)
|
||||
|| IS_SIGNATURE_REFERENCE (rhstype)))))
|
||||
{
|
||||
error ("invalid assignment to signature pointer or reference");
|
||||
|
@ -814,8 +814,8 @@ build_signature_pointer_constructor (lhs, rhs)
|
|||
saveable_obstack = &permanent_obstack;
|
||||
}
|
||||
|
||||
if (TYPE_LANG_SPECIFIC (rhstype) &&
|
||||
(IS_SIGNATURE_POINTER (rhstype) || IS_SIGNATURE_REFERENCE (rhstype)))
|
||||
if (TYPE_LANG_SPECIFIC (rhstype)
|
||||
&& (IS_SIGNATURE_POINTER (rhstype) || IS_SIGNATURE_REFERENCE (rhstype)))
|
||||
{
|
||||
if (SIGNATURE_TYPE (rhstype) == sig_ty)
|
||||
{
|
||||
|
@ -968,8 +968,8 @@ build_signature_method_call (function, parms)
|
|||
/* Cast the signature method to have `this' of a normal pointer type. */
|
||||
tree old_this = TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (TREE_TYPE (pfn))));
|
||||
|
||||
TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (TREE_TYPE (pfn)))) =
|
||||
build_type_variant (build_pointer_type (basetype),
|
||||
TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (TREE_TYPE (pfn))))
|
||||
= build_type_variant (build_pointer_type (basetype),
|
||||
TYPE_READONLY (old_this),
|
||||
TYPE_VOLATILE (old_this));
|
||||
|
||||
|
|
|
@ -4397,8 +4397,8 @@ build_unary_op (code, xarg, noconvert)
|
|||
if (staticp (arg))
|
||||
TREE_CONSTANT (addr) = 1;
|
||||
|
||||
if (TREE_CODE (argtype) == POINTER_TYPE &&
|
||||
TREE_CODE (TREE_TYPE (argtype)) == METHOD_TYPE)
|
||||
if (TREE_CODE (argtype) == POINTER_TYPE
|
||||
&& TREE_CODE (TREE_TYPE (argtype)) == METHOD_TYPE)
|
||||
{
|
||||
build_ptrmemfunc_type (argtype);
|
||||
addr = build_ptrmemfunc (argtype, addr, 0);
|
||||
|
@ -5575,8 +5575,8 @@ build_modify_expr (lhs, modifycode, rhs)
|
|||
|
||||
/* Handle assignment to signature pointers/refs. */
|
||||
|
||||
if (TYPE_LANG_SPECIFIC (lhstype) &&
|
||||
(IS_SIGNATURE_POINTER (lhstype) || IS_SIGNATURE_REFERENCE (lhstype)))
|
||||
if (TYPE_LANG_SPECIFIC (lhstype)
|
||||
&& (IS_SIGNATURE_POINTER (lhstype) || IS_SIGNATURE_REFERENCE (lhstype)))
|
||||
{
|
||||
return build_signature_pointer_constructor (lhs, rhs);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue