re PR c/63626 (Warning "inline function declared but never defined" output twice)

PR c/63626
	* c-decl.c (pop_scope): Don't print warning in external_scope.

	* gcc.dg/pr63626.c: New test.

From-SVN: r216595
This commit is contained in:
Marek Polacek 2014-10-23 16:46:44 +00:00 committed by Marek Polacek
parent 59d7607aec
commit 1bc5a4513e
4 changed files with 20 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2014-10-23 Marek Polacek <polacek@redhat.com>
PR c/63626
* c-decl.c (pop_scope): Don't print warning in external_scope.
2014-10-19 Marek Polacek <polacek@redhat.com>
PR c/63567

View File

@ -1182,7 +1182,8 @@ pop_scope (void)
with an inline function specifier ... shall also be defined
in the same translation unit." */
if (!flag_gnu89_inline
&& !lookup_attribute ("gnu_inline", DECL_ATTRIBUTES (p)))
&& !lookup_attribute ("gnu_inline", DECL_ATTRIBUTES (p))
&& scope != external_scope)
pedwarn (input_location, 0,
"inline function %q+D declared but never defined", p);
DECL_EXTERNAL (p) = 1;

View File

@ -1,3 +1,8 @@
2014-10-23 Marek Polacek <polacek@redhat.com>
PR c/63626
* gcc.dg/pr63626.c: New test.
2014-10-23 Marek Polacek <polacek@redhat.com>
* c-c++-common/ubsan/undefined-2.c: New test.

View File

@ -0,0 +1,8 @@
/* PR c/63626 */
/* { dg-do compile } */
/* { dg-options "" } */
/* Test that we don't output the warning twice. */
inline int foo (void); /* { dg-bogus "inline function.*inline function" } */
/* { dg-warning "inline function .foo. declared but never defined" "" { target *-*-* } 7 } */