From 773edaeff24e371cc331b6a22a77c23b20210460 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Fri, 23 Apr 1993 19:27:20 -0400 Subject: [PATCH] (shadow_tag_warned): Let warned have three values, so that a mere warning doesn't prevent a pedwarn. (shadow_tag_warned): Let warned have three values, so that a mere warning doesn't prevent a pedwarn. Don't skip the error call at the end on accounted of warned. From-SVN: r4203 --- gcc/c-decl.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 783ca5535b2..f62e306559b 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -3097,6 +3097,8 @@ void shadow_tag_warned (declspecs, warned) tree declspecs; int warned; + /* 1 => we have done a pedwarn. 2 => we have done a warning, but + no pedwarn. */ { int found_tag = 0; register tree link; @@ -3119,7 +3121,8 @@ shadow_tag_warned (declspecs, warned) if (name == 0) { - if (!warned && code != ENUMERAL_TYPE) /* Empty unnamed enum OK */ + if (warned != 1 && code != ENUMERAL_TYPE) + /* Empty unnamed enum OK */ { pedwarn ("unnamed struct/union that defines no instances"); warned = 1; @@ -3139,15 +3142,18 @@ shadow_tag_warned (declspecs, warned) else { if (!warned) - pedwarn ("useless keyword or type name in empty declaration"); - warned = 1; + { + warning ("useless keyword or type name in empty declaration"); + warned = 2; + } } } - if (!warned) + if (found_tag > 1) + error ("two types specified in one empty declaration"); + + if (warned != 1) { - if (found_tag > 1) - error ("two types specified in one empty declaration"); if (found_tag == 0) pedwarn ("empty declaration"); } -- 2.30.2