diff mbox

Get rid of warning in dwarf2out.c

Message ID 201104181937.53360.ebotcazou@adacore.com
State New
Headers show

Commit Message

Eric Botcazou April 18, 2011, 5:37 p.m. UTC
Compiling dwarf2out.c with older versions of GCC yields a warning because 
is_redundant_typedef has a prototype without the 'inline' keyboard and a 
declaration with it, and is called from another function in-between.

The attached patchlet adds 'inline' to the prototype, as is done for other 
functions in the file.  Tested on i586-suse-linux, applied on mainline and 
4.6/4.5 branches as obvious.

2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.

Comments

Hans-Peter Nilsson April 26, 2011, 2:08 a.m. UTC | #1
On Mon, 18 Apr 2011, Eric Botcazou wrote:
> Compiling dwarf2out.c with older versions of GCC yields a warning because
> is_redundant_typedef has a prototype without the 'inline' keyboard and a
> declaration with it, and is called from another function in-between.

Shouldn't there be a warning from newer gcc, i.e. from trunk?

brgds, H-P
Eric Botcazou April 28, 2011, 3:50 p.m. UTC | #2
> Shouldn't there be a warning from newer gcc, i.e. from trunk?

The code in GCC 4.3 reads:

      /* Inline declaration after use or definition.
	 ??? Should we still warn about this now we have unit-at-a-time
	 mode and can get it right?
	 Definitely don't complain if the decls are in different translation
	 units.
	 C99 permits this, so don't warn in that case.  (The function
	 may not be inlined everywhere in function-at-a-time mode, but
	 we still shouldn't warn.)  */
     if (DECL_DECLARED_INLINE_P (newdecl) && !DECL_DECLARED_INLINE_P (olddecl)
	  && same_translation_unit_p (olddecl, newdecl)
	  && flag_gnu89_inline)
	{
	  if (TREE_USED (olddecl))
	    {
	      warning (0, "%q+D declared inline after being called", olddecl);
	      warned = true;
	    }
	  else if (DECL_INITIAL (olddecl))
	    {
	      warning (0, "%q+D declared inline after its definition", olddecl);
	      warned = true;
	    }
	}

It was removed by:

2008-07-24  Jan Hubicka  <jh@suse.cz>

	* cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
	(build_cgraph_edges): Likewise.
[...]
	* c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
	early in GNU dialect.


so I presume that the answer is no.
diff mbox

Patch

Index: dwarf2out.c
===================================================================
--- dwarf2out.c	(revision 172617)
+++ dwarf2out.c	(working copy)
@@ -6565,7 +6565,7 @@  static void gen_typedef_die (tree, dw_di
 static void gen_type_die (tree, dw_die_ref);
 static void gen_block_die (tree, dw_die_ref, int);
 static void decls_for_scope (tree, dw_die_ref, int);
-static int is_redundant_typedef (const_tree);
+static inline int is_redundant_typedef (const_tree);
 static bool is_naming_typedef_decl (const_tree);
 static inline dw_die_ref get_context_die (tree);
 static void gen_namespace_die (tree, dw_die_ref);