+2011-04-12 Martin Jambor <mjambor@suse.cz>
+
+ * class.c (cp_fold_obj_type_ref): Call cgraph_get_node instead of
+ cgraph_get_create_node.
+ * decl2.c (cp_write_global_declarations): Call cgraph_get_node
+ instead of cgraph_get_create_node.
+ * method.c (make_alias_for_thunk): Call cgraph_get_node
+ instead of cgraph_get_create_node, assert it returns non-NULL.
+ (use_thunk): Likewise.
+ * optimize.c (maybe_clone_body): Call cgraph_same_body_alias only
+ when flag_syntax_only is not set. Call cgraph_get_node instead of
+ cgraph_get_create_node.
+ (maybe_clone_body): Call cgraph_get_node instead of
+ cgraph_get_create_node.
+
2011-04-12 Martin Jambor <mjambor@suse.cz>
* class.c (cp_fold_obj_type_ref): Call cgraph_get_create_node
DECL_VINDEX (fndecl)));
#endif
- cgraph_get_create_node (fndecl)->local.vtable_method = true;
+ cgraph_get_node (fndecl)->local.vtable_method = true;
return build_address (fndecl);
}
if (!DECL_EXTERNAL (decl)
&& decl_needed_p (decl)
&& !TREE_ASM_WRITTEN (decl)
- && !cgraph_get_create_node (decl)->local.finalized)
+ && !cgraph_get_node (decl)->local.finalized)
{
/* We will output the function; no longer consider it in this
loop. */
if (!flag_syntax_only)
{
- struct cgraph_node *aliasn;
- aliasn = cgraph_same_body_alias (cgraph_get_create_node (function),
- alias, function);
+ struct cgraph_node *funcn, *aliasn;
+ funcn = cgraph_get_node (function);
+ gcc_checking_assert (funcn);
+ aliasn = cgraph_same_body_alias (funcn, alias, function);
DECL_ASSEMBLER_NAME (function);
gcc_assert (aliasn != NULL);
}
tree virtual_offset;
HOST_WIDE_INT fixed_offset, virtual_value;
bool this_adjusting = DECL_THIS_THUNK_P (thunk_fndecl);
+ struct cgraph_node *funcn;
/* We should have called finish_thunk to give it a name. */
gcc_assert (DECL_NAME (thunk_fndecl));
a = nreverse (t);
DECL_ARGUMENTS (thunk_fndecl) = a;
TREE_ASM_WRITTEN (thunk_fndecl) = 1;
- cgraph_add_thunk (cgraph_get_create_node (function), thunk_fndecl, function,
+ funcn = cgraph_get_node (function);
+ gcc_checking_assert (funcn);
+ cgraph_add_thunk (funcn, thunk_fndecl, function,
this_adjusting, fixed_offset, virtual_value,
virtual_offset, alias);
&& (!DECL_ONE_ONLY (fns[0])
|| (HAVE_COMDAT_GROUP
&& DECL_WEAK (fns[0])))
- && cgraph_same_body_alias (cgraph_get_create_node (fns[0]), clone,
- fns[0]))
+ && (flag_syntax_only
+ || cgraph_same_body_alias (cgraph_get_node (fns[0]), clone,
+ fns[0])))
{
alias = true;
if (DECL_ONE_ONLY (fns[0]))
/* If *[CD][12]* dtors go into the *[CD]5* comdat group and dtor is
virtual, it goes into the same comdat group as well. */
DECL_COMDAT_GROUP (fns[2]) = comdat_group;
- base_dtor_node = cgraph_get_create_node (fns[0]);
- deleting_dtor_node = cgraph_get_create_node (fns[2]);
+ base_dtor_node = cgraph_get_node (fns[0]);
+ deleting_dtor_node = cgraph_get_node (fns[2]);
gcc_assert (base_dtor_node->same_comdat_group == NULL);
gcc_assert (deleting_dtor_node->same_comdat_group == NULL);
base_dtor_node->same_comdat_group = deleting_dtor_node;