c-decl.c (merge_decls): Do not handle DECL_INLINE.

* c-decl.c (merge_decls): Do not handle DECL_INLINE.
	(grokdeclarator): Likewise.
	* langhooks.c (lhd_warn_unused_global_decl): Use
	DECL_DECLARED_INLINE_P.
	* print-tree.c (print_node): Remove DECL_INLINE check.

From-SVN: r138258
This commit is contained in:
Jan Hubicka 2008-07-29 19:10:55 +02:00 committed by Jan Hubicka
parent ce94d3547f
commit 54dfd46bff
4 changed files with 16 additions and 33 deletions

View file

@ -1,3 +1,11 @@
2008-07-29 Jan Hubicka <jh@suse.cz>
* c-decl.c (merge_decls): Do not handle DECL_INLINE.
(grokdeclarator): Likewise.
* langhooks.c (lhd_warn_unused_global_decl): Use
DECL_DECLARED_INLINE_P.
* print-tree.c (print_node): Remove DECL_INLINE check.
2008-07-29 Richard Guenther <rguenther@suse.de>
PR tree-optimization/36945

View file

@ -1786,7 +1786,6 @@ merge_decls (tree newdecl, tree olddecl, tree newtype, tree oldtype)
(*debug_hooks->outlining_inline_function) (olddecl);
/* The new defn must not be inline. */
DECL_INLINE (newdecl) = 0;
DECL_UNINLINABLE (newdecl) = 1;
}
else
@ -1841,22 +1840,10 @@ merge_decls (tree newdecl, tree olddecl, tree newtype, tree oldtype)
gimple_set_body (newdecl, gimple_body (olddecl));
DECL_ARGUMENTS (newdecl) = DECL_ARGUMENTS (olddecl);
/* Set DECL_INLINE on the declaration if we've got a body
from which to instantiate. */
if (DECL_INLINE (olddecl) && !DECL_UNINLINABLE (newdecl))
{
DECL_INLINE (newdecl) = 1;
DECL_ABSTRACT_ORIGIN (newdecl)
= DECL_ABSTRACT_ORIGIN (olddecl);
}
}
else
{
/* If a previous declaration said inline, mark the
definition as inlinable. */
if (DECL_DECLARED_INLINE_P (newdecl)
&& !DECL_UNINLINABLE (newdecl))
DECL_INLINE (newdecl) = 1;
/* See if we've got a function to instantiate from. */
if (DECL_SAVED_TREE (olddecl))
DECL_ABSTRACT_ORIGIN (newdecl)
= DECL_ABSTRACT_ORIGIN (olddecl);
}
}
@ -4851,19 +4838,8 @@ grokdeclarator (const struct c_declarator *declarator,
pedwarn (0, "cannot inline function %<main%>");
}
else if (declspecs->inline_p)
{
/* Record that the function is declared `inline'. */
DECL_DECLARED_INLINE_P (decl) = 1;
/* Do not mark bare declarations as DECL_INLINE. Doing so
in the presence of multiple declarations can result in
the abstract origin pointing between the declarations,
which will confuse dwarf2out. */
if (initialized)
DECL_INLINE (decl) = 1;
}
else if (initialized)
DECL_INLINE (decl) = 1;
/* Record that the function is declared `inline'. */
DECL_DECLARED_INLINE_P (decl) = 1;
}
else
{

View file

@ -133,7 +133,7 @@ lhd_warn_unused_global_decl (const_tree decl)
/* This is what used to exist in check_global_declarations. Probably
not many of these actually apply to non-C languages. */
if (TREE_CODE (decl) == FUNCTION_DECL && DECL_INLINE (decl))
if (TREE_CODE (decl) == FUNCTION_DECL && DECL_DECLARED_INLINE_P (decl))
return false;
if (TREE_CODE (decl) == VAR_DECL && TREE_READONLY (decl))
return false;

View file

@ -461,8 +461,7 @@ print_node (FILE *file, const char *prefix, tree node, int indent)
print_node (file, "size", DECL_SIZE (node), indent + 4);
print_node (file, "unit size", DECL_SIZE_UNIT (node), indent + 4);
if (TREE_CODE (node) != FUNCTION_DECL
|| DECL_INLINE (node) || DECL_BUILT_IN (node))
if (TREE_CODE (node) != FUNCTION_DECL || DECL_BUILT_IN (node))
indent_to (file, indent + 3);
if (DECL_USER_ALIGN (node))