Bug 12267 - [3.4 regression] function-at-a-time generates stabs in bad order
Summary: [3.4 regression] function-at-a-time generates stabs in bad order
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: debug (show other bugs)
Version: 3.4.0
: P1 normal
Target Milestone: 4.0.0
Assignee: Zack Weinberg
URL:
Keywords: patch, wrong-debug
Depends on:
Blocks:
 
Reported: 2003-09-12 18:47 UTC by mec
Modified: 2005-02-09 02:18 UTC (History)
3 users (show)

See Also:
Host: i686-pc-linux-gnu
Target: i686-pc-linux-gnu
Build: i686-pc-linux-gnu
Known to work: 3.3 4.0.0
Known to fail:
Last reconfirmed: 2003-12-01 06:45:19


Attachments
Source file (1.01 KB, application/octet-stream)
2003-09-12 18:49 UTC, mec
Details
assembly file, good (5.08 KB, application/octet-stream)
2003-09-12 18:50 UTC, mec
Details
assembly file, bad (5.09 KB, application/octet-stream)
2003-09-12 18:52 UTC, mec
Details
Source file, smaller example (167 bytes, application/octet-stream)
2003-09-12 18:53 UTC, mec
Details
assembly file, smaller example, bad (4.35 KB, application/octet-stream)
2003-09-12 18:55 UTC, mec
Details
good z0.s, gcc HEAD 2003-04-11 03:00:00 UTC (4.44 KB, text/plain)
2003-12-01 19:10 UTC, mec
Details
bad z0.s, gcc HEAD 2003-04-11 04:30:00 UTC (4.46 KB, text/plain)
2003-12-01 19:13 UTC, mec
Details

Note You need to log in before you can comment on or make changes to this bug.
Description mec 2003-09-12 18:47:52 UTC
I am seeing a regression in debug info with this patch:

Fri Sep  5 07:35:16 CEST 2003  Jan Hubicka  <jh@suse.cz>

        * opts.c (decode_options): Enable unit-at-a-time at -O2.
        * params.def (max-inline-insns-single): Set to 500
        (max-inline-insns-auto): Set to 150
        * invoke.texi (max-inline-insns-single, max-inline-insns-auto): Update.

I have a sample program which I compile with "gcc -gstabs+ -O2 -S".
The sample program and the assembly output are attached.

The problem happens at the end of main:

.LM31:
        ret
        .size   main, .-main
        .stabs  "factorial:F(0,3)",36,0,93,factorial
.Lscope7:
        .stabs  "",36,0,0,.Lscope7-main
        .text
        .stabs "",100,0,0,.Letext
.Letext:
        .section        .note.GNU-stack,"",@progbits
        .ident  "GCC: (GNU) 3.4 20030905 (experimental)"

The bad line is the stab for "factorial:F(0,3)" which occurs in the terminal
portion of main, between ".size main, .-main" and "stabs
"",36,0,0,.Lscope7-main".  This messes up the gdb block table for "main",
causing a regression in the gdb test script gdb.base/break.exp.

In the source file, main comes first, but in the object file, factorial is
emitted first.  It looks like a scrap of "factorial" was left behind when it was
rearranged to be omitted before "main".
Comment 1 mec 2003-09-12 18:49:55 UTC
Created attachment 4746 [details]
Source file

Source file which tickles the bug.
Compile with: gcc -gstabs+ -O2 -S.
Comment 2 mec 2003-09-12 18:50:44 UTC
Created attachment 4747 [details]
assembly file, good

Assembly file with gcc HEAD 2003-09-05 05:00:00 UTC.
This file is okay.
Comment 3 mec 2003-09-12 18:52:05 UTC
Created attachment 4748 [details]
assembly file, bad

Assembly file with gcc HEAD 2003-09-05 06:00:00 UTC.
This file has a bad .stab for "factorial" at the end of main
(line 505 of 512).
Comment 4 mec 2003-09-12 18:53:42 UTC
Created attachment 4749 [details]
Source file, smaller example

This is a smaller source file with pre-processor gunk stripped out.
This is a minimal file that I could find.
Comment 5 Wolfgang Bangerth 2003-09-12 18:54:27 UTC
Jan, this is your field.

The listed patch is certainly not the one that created the problem, as
it only enables unit-at-a-time with -O2. Michael, can you try to find
out which patch introduced the problem when you go further back and
explicitly compile with -funit-at-a-time?

W.
Comment 6 mec 2003-09-12 18:55:46 UTC
Created attachment 4750 [details]
assembly file, smaller example, bad

Here is the assembly code with gcc HEAD 2003-09-05 06:00:00 UTC.
The bad line is line 319 of 326.  It's a stab for "factorial" which is in the
middle of the epilog for main!
Comment 7 mec 2003-09-12 19:11:37 UTC
Subject: Re:  [3.4 regression] function-at-a-time generates stabs in bad order

I agree it would be useful to date-search this with explicit
-funit-at-a-time, but I won't have time to do this for several
days (maybe a week).

Michael C
Comment 8 Andrew Pinski 2003-09-18 02:25:00 UTC
Might be fixed by <http://gcc.gnu.org/ml/gcc-patches/2003-09/msg01167.html>.
Comment 9 Andrew Pinski 2003-11-29 02:06:04 UTC
It was fixed by that patch.
Comment 10 mec 2003-11-30 17:48:39 UTC
This bug still happens with gcc HEAD 2003-11-29 16:28:31 UTC.

Here's an excerpt from a recent z0.s, the result of "gcc -gstabs+ -O2 -S z0.c"
with  gcc HEAD 2003-11-29 16:28:31 UTC.  (Other info: binutils 2.14, native
i686-pc-linux-gnu, red hat 8.0).

.LM15:
        leave
        xorl    %eax, %eax
        ret
        .size   main, .-main
        .stabs  "factorial:F(0,1)",36,0,13,factorial
.Lscope1:
        .stabs  "",36,0,0,.Lscope1-main
        .text
        .stabs "",100,0,0,.Letext
.Letext:
        .section        .note.GNU-stack,"",@progbits
        .ident  "GCC: (GNU) 3.4 20031129 (experimental)"

The ".stabs" for factorial still appears at the end of "main", right after
".size main, .-main"

Also, if you look at gcc/ChangeLog, only half of msg01167.html was committed to
gcc HEAD.
Comment 11 mec 2003-12-01 19:07:31 UTC
I executed Wolfgang's suggestion and did a date search with -funit-at-a-time
enabled.

The bad .stabs line appeared between 2003-04-11 03:00:00 UTC and 2003-04-11
04:30 UTC (these times are on the subversions.gnu.org repository,
cvsroot=:pserver:anoncvs:@subversions.gnu.org:/cvsroot/gcc).

The patch which caused this is:

  2003-04-10  Zack Weinberg  <zack@codesourcery.com>

        * c-decl.c (struct binding_level): Add shadowed_tags and
        function_body; remove this_block, tag_transparent, and
        subblocks_tag_transparent; update comments.
        ...

  2003-04-10  Zack Weinberg  <zack@codesourcery.com>

        * c-tree.h (struct lang_identifier): Replace global_value,
        local_value members with symbol_value, tag_value.  Kill
        implicit_decl and limbo_value.
        ...

There are two ChangeLog entries here, but only one patch.

There is some discussion here:

  http://gcc.gnu.org/ml/gcc-patches/2003-04/msg00766.html
  http://gcc.gnu.org/ml/gcc-patches/2003-04/msg00767.html

In the followup to 00767, Neil Booth said: "I once tried to remove the extra
contour, which gave a bootstrappable compiler but with screwy debug info IIRC. 
At that point I gave up.", and Zack said "I don't think the debug info is
screwed by this ... I suppose we'll find out."  Heh.

I will attach a couple of generated assembly files from the compilers just
before and after the regression.

Michael C
Comment 12 mec 2003-12-01 19:10:11 UTC
Created attachment 5257 [details]
good z0.s, gcc HEAD 2003-04-11 03:00:00 UTC

Compiler version is gcc HEAD 2003-04-11 03:00:00 UTC from subversions.gnu.org.
Compile line is: gcc -funit-at-a-time -gstabs+ -O2 -S z0.41103.s z0.c
This is the "before" output (still good).
Comment 13 Andrew Pinski 2003-12-01 19:12:07 UTC
This is third bug that was caused by these patches.
Comment 14 mec 2003-12-01 19:13:02 UTC
Created attachment 5258 [details]
bad z0.s, gcc HEAD 2003-04-11 04:30:00 UTC

Compiler version is gcc HEAD 2003-04-11 04:30:00 UTC from subversions.gnu.org.
Compiler command line is gcc -funit-at-a-time -gstabs+ -O2 -o z0.41130.s z0.c.
This is the bad assembly file, just after the regression.
The bug is at the end of "main":

	.size	main, .-main
	.stabs	"factorial:F(0,1)",36,0,13,factorial
.Lscope1:
	.stabs	"",36,0,0,.Lscope1-main

The "factorial:F(0,1)" line is misplaced with -funit-at-a-time.
Comment 15 Zack Weinberg 2003-12-01 19:33:09 UTC
Subject: Re:  [3.4 regression] function-at-a-time generates
 stabs in bad order


The present state of c-decl.c is "halfway through a major rewrite" and
I am not surprised by the bugs.  Unfortunately I ran out of time to
work on it, and Geoff's multiple-translation-unit patches make it a
lot harder to finish; and I don't think backing it out is feasible.

I will see if I can find time to work on this now.  Please assign all
such bugs to me so I can find them easily.

zw
Comment 16 Andrew Pinski 2003-12-06 09:29:01 UTC
It is Zack's bug.
Comment 17 Zack Weinberg 2004-03-16 20:57:54 UTC
Fixed by the c-decl.c rewrite:
http://gcc.gnu.org/ml/gcc-patches/2004-03/msg01280.html
Comment 18 Mark Mitchell 2004-03-21 17:55:06 UTC
Given that stabs are only used on a few platforms by deafult, and that Zack
doesn't think this easy to fix for 3.4.0, and that the c-decl rewrite may be
backported to 3.4.1, which will then fix it, I've retargeted this at 3.4.1.
Comment 19 GCC Commits 2004-03-23 23:47:59 UTC
Subject: Bug 12267

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	zack@gcc.gnu.org	2004-03-23 23:47:53

Modified files:
	gcc            : ChangeLog c-common.h c-decl.c c-lang.c 
	                 c-objc-common.c c-opts.c c-parse.in c-tree.h 
	                 c-typeck.c coverage.c langhooks.c tree.c 
	gcc/cp         : ChangeLog cp-lang.c parser.c 
	gcc/objc       : objc-act.c objc-act.h objc-lang.c 
	gcc/testsuite  : ChangeLog 
	gcc/testsuite/gcc.dg: Wold-style-definition-1.c builtins-30.c 
	                      decl-5.c local1.c redecl-1.c unused-4.c 
	gcc/testsuite/gcc.dg/noncompile: label-1.c label-lineno-1.c 
	gcc/testsuite/objc.dg: naming-1.m 
Added files:
	gcc/testsuite/gcc.dg: Wshadow-2.c 
	gcc/testsuite/gcc.dg/noncompile: incomplete-3.c undeclared-1.c 

Log message:
	PR 12267, 12391, 12560, 13129, 14114, 14113
	
	* c-tree.h: Forward declare struct c_binding.  Declare
	c_override_bindings_to_false.  Update prototypes.
	(struct lang_identifier): Update comments.  Change fields to be
	struct c_binding *.
	(IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
	(IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
	(KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
	(C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
	* c-common.h: Update prototypes.
	* c-decl.c (struct c_scope): Update commentary.  Remove names,
	names_last, parms, parms_last, tags, and shadowed fields.  Add
	bindings and depth fields.
	(scope_freelist): Move to more appropriate location.
	(c_print_identifier): Update for changes to struct lang_identifier.
	(objc_mark_locals_volatile): Update for new bindings structures.
	(global_bindings_p): Honor c_override_global_bindings_to_false.
	(pushlevel): Rename to push_scope; take no arguments; use the
	scope_freelist; initialize scope->depth and check for overflow.
	(poplevel): Rename to pop_scope; totally rewritten for new bindings
	structures.
	(diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
	C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
	Improve some commentary.  Adjust handling of forward parm decls.
	(merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
	Preserve C_DECL_IN_EXTERNAL_SCOPE.
	(warn_if_shadowing): Correct indentation.  Improve diagnostics.
	(pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
	decls.  Rewrite for new bindings structures.  Improve commentary.
	Eliminate the copy_node call.
	(implicit_decl_warning): Use the "diag" idiom (as seen in
	locate_old_decl) to reduce code duplication; call locate_old_decl
	if appropriate.  Relocate to remove need for forward declaration.
	(implicitly_declare): Adjust for new bindings structures.  Kludge
	around Objective-C not-really-builtin functions.
	(undeclared_variable): Improve diagnostics.  If current_function_decl
	is nonnull but current_function_scope is null, use current_scope.
	Use bind.
	(lookup_tag): Adjust for new bindings structures.  Kludge around
	Objective-C's tag declarations that wind up in the external scope.
	(lookup_name): Adjust for new bindings structures.  Kludge around
	c-common.c's pseudo-typedefs that wind up in the external scope.
	(lookup_name_current_level): Rename lookup_name_in_scope; take a
	second argument indicating the scope to examine; rewrite for
	new bindings structures.
	(c_init_decl_processing): Adjust for renamed functions.  Do not
	initialize current_file_decl, first_builtin_decl, last_builtin_decl.
	First scope pushed is the external scope, not the global scope.
	(builtin_function): Use bind, not pushdecl.  Adjust other bits
	for new data structures.  Keep track of builtins that should be
	made visible automatically.
	(start_decl): Adjust diagnostics.  Remove unnecessary call to
	expand_decl.
	(grokparms): Return 0 if arg_types is error_mark_node.
	(get_parm_info): Rename "void_at_end" argument to "ellipsis", with
	reversed sense.  Rewrite for new bindings structures.  Do not
	leave any decls in the scope, to prevent pop_scope from doing
	contradictory things with them.
	(finish_struct, finish_enum): Remove redundant diagnostics.
	(build_enumerator): Don't cascade diagnostics for error_mark_node.
	Mark location where -pedantic changes the meaning of the program.
	(store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
	parameter decls into the function's scope structure using bind.
	Warn here about function definitions in the wrong style.
	Adjust diagnostics.
	(store_parm_decls): Correct the determination of whether a
	function was defined with a prototype.
	(c_write_global_declarations): Operate on all file decls and on
	the external scope.  Split body of the loop to...
	(c_write_global_declarations_1): ... this new function, to avoid
	code duplication.
	(truly_local_externals, first_builtin_decl, last_builtin_decl)
	(make_scope, pop_scope, in_parm_level_p, set_block)
	(any_external_decl, record_external_decl, bind_label, getdecls)
	(link_hash_hash, link_hash_eq, merge_translation_unit_decls)
	(c_reset_state): Delete.
	(visible_builtins, c_override_global_bindings_to_false)
	(c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
	(I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
	(external_scope, binding_freelist, bind, free_binding_and_advance)
	(push_file_scope, pop_file_scope): New.
	(pushtag, pushdecl_top_level, lookup_label, declare_label)
	(define_label, c_make_fname_decl, finish_decl)
	(mark_forward_parm_decls, build_compound_literal)
	(grokdeclarator, start_function, check_for_loop_decls)
	(identifier_global_value, record_builtin_type): Minor adjustments
	for new bindings structures.  Improve diagnostics and commentary.
	* c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
	pushlevel/poplevel respectively.
	(c_objc_common_finish_file): Don't call merge_translation_unit_decls.
	* c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
	Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
	correct loop over multiple translation units; call fatal_error if
	requested to compile more than one file at once.  (This disables
	IMA temporarily - an up-front error being preferable to a crash.)
	* c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
	(all actions): Adjust calls to pushlevel/poplevel.
	(parsing_iso_function_signature): Delete.
	(extdef_1): Fold into extdef.
	(old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
	warn here about function definitions in the wrong style.
	(after_tyle_declarator, parm_declarator_starttypename)
	(parm_declarator_nostarttypename, notype_declarator): Remove
	commented-out productions.
	(parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
	an empty TREE_LIST node.  Adjust calls to get_parm_info.
	(parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
	to suppress -Wold-style-definition after this error.
	(c_parse_file): Don't clear the binding stack or call
	finish_fname_decls here.  Correct comment.
	* c-typeck.c (same_translation_unit_p): Export.
	(common_type): Use c_override_global_bindings_to_false, not
	pushlevel/poplevel/declare_parm_level.
	* c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
	LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
	and LANG_HOOKS_GETDECLS with do-nothing stubs.
	* objc/objc-lang.c: Likewise.
	* objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
	get_parm_info.
	(OBJC_VOID_AT_END): Delete; replace all uses
	with void_list_node.
	(generate_forward_declaration_to_string_table): Delete.
	* objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
	
	* coverage.c (create_coverage): Don't pushdecl anything.
	* langhooks.c (lhd_clear_binding_stack): Call
	lang_hooks.decls.poplevel, not poplevel.
	* tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
	circular list rather than going into an infinite loop.
	
	cp:
	* cp-lang.c (c_reset_state): Delete.
	(push_file_scope, pop_file_scope): New stubs.
	* parser.c (c_parse_file): Call sorry() here if called more than once.
	
	testsuite:
	* gcc.dg/Wold-style-definition-1.c, gcc.dg/builtins-30.c
	* gcc.dg/unused-4.c, gcc.dg/noncompile/label-1.c
	* gcc.dg/noncompile/label-lineno-1.c, objc.dg/naming-1.m:
	Adjust error regexps.
	* gcc.dg/Wshadow-2.c, gcc.dg/noncompile/incomplete-3.c
	* gcc.dg/noncompile/undeclared-1.c: New test cases.
	* gcc.dg/decl-5.c, gcc.dg/redecl-1.c: Remove XFAIL.
	* gcc.dg/local1.c: Add explanatory comment.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.3268&r2=2.3269
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/c-common.h.diff?cvsroot=gcc&r1=1.222&r2=1.223
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/c-decl.c.diff?cvsroot=gcc&r1=1.488&r2=1.489
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/c-lang.c.diff?cvsroot=gcc&r1=1.121&r2=1.122
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/c-objc-common.c.diff?cvsroot=gcc&r1=1.42&r2=1.43
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/c-opts.c.diff?cvsroot=gcc&r1=1.107&r2=1.108
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/c-parse.in.diff?cvsroot=gcc&r1=1.202&r2=1.203
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/c-tree.h.diff?cvsroot=gcc&r1=1.141&r2=1.142
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/c-typeck.c.diff?cvsroot=gcc&r1=1.293&r2=1.294
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/coverage.c.diff?cvsroot=gcc&r1=1.32&r2=1.33
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/langhooks.c.diff?cvsroot=gcc&r1=1.60&r2=1.61
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree.c.diff?cvsroot=gcc&r1=1.361&r2=1.362
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.4010&r2=1.4011
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/cp-lang.c.diff?cvsroot=gcc&r1=1.74&r2=1.75
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/parser.c.diff?cvsroot=gcc&r1=1.186&r2=1.187
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/objc/objc-act.c.diff?cvsroot=gcc&r1=1.207&r2=1.208
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/objc/objc-act.h.diff?cvsroot=gcc&r1=1.20&r2=1.21
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/objc/objc-lang.c.diff?cvsroot=gcc&r1=1.40&r2=1.41
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.3631&r2=1.3632
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/Wshadow-2.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/Wold-style-definition-1.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/builtins-30.c.diff?cvsroot=gcc&r1=1.3&r2=1.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/decl-5.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/local1.c.diff?cvsroot=gcc&r1=1.2&r2=1.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/redecl-1.c.diff?cvsroot=gcc&r1=1.2&r2=1.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/unused-4.c.diff?cvsroot=gcc&r1=1.2&r2=1.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/noncompile/incomplete-3.c.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/noncompile/undeclared-1.c.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/noncompile/label-1.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/noncompile/label-lineno-1.c.diff?cvsroot=gcc&r1=1.3&r2=1.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/objc.dg/naming-1.m.diff?cvsroot=gcc&r1=1.2&r2=1.3

Comment 20 Zack Weinberg 2004-03-23 23:51:31 UTC
fixed in 3.5
Comment 21 Zack Weinberg 2004-06-01 04:23:05 UTC
This patch would require backporting the c-decl.c rewrite to fix.  I am
suspending all such bugs until we decide whether or not to do that.
Comment 22 Mark Mitchell 2004-06-12 22:12:31 UTC
Fixed in GCC 3.5.0, won't fix in 3.4.x.