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:
parent
ce94d3547f
commit
54dfd46bff
4 changed files with 16 additions and 33 deletions
|
@ -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
|
||||
|
|
36
gcc/c-decl.c
36
gcc/c-decl.c
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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))
|
||||
|
|
Loading…
Add table
Reference in a new issue