Summary: | [4.0 Regression] internal compiler error: in force_decl_die, at dwarf2out.c:12441 | ||
---|---|---|---|
Product: | gcc | Reporter: | Carlo Wood <carlo> |
Component: | debug | Assignee: | Not yet assigned to anyone <unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | critical | CC: | dpatel, gcc-bugs, reichelt |
Priority: | P2 | Keywords: | ice-on-valid-code, monitored |
Version: | 4.0.0 | ||
Target Milestone: | 4.0.0 | ||
Host: | Target: | ||
Build: | Known to work: | 3.4.0 | |
Known to fail: | 4.0.0 | Last reconfirmed: | 2004-05-30 19:46:08 |
Description
Carlo Wood
2004-05-30 19:44:05 UTC
Confirmed. A slightly simpler test case: struct B { int n; }; struct A : B { using B::n; }; Devang Patel, can you look into this as I think this is caused by your patch: 2004-01-27 Devang Patel <dpatel@apple.com> * Makefile.in (dwarf2out.o): Depend on input.h * dbxout.c (dbx_debug_hooks): Add new empty hook for imported_module_or_decl. (xcoff_debug_hooks): Same. * sdbout.c (sdb_debug_hooks): Same. * vmsdbgout.c (vmsdbg_debug_hooks): Same. * debug.c (do_nothing_debug_hooks): Same. (debug_nothing_tree_tree): New function. * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl. * dwarf2out.c: Include input.h. (dwarf2_debug_hooks): Add new hook for imported_module_or_decl. (remove_child_TAG): New function. (dwarf_tag_name): Handle DW_TAG_imported_module. (gen_subprogram_die): Equate decl number to declaration die. Do not remove all children dies while reusing declaration die for definition. Instead, selectively remove only formal parameters. (gen_variable_die): Equate variable decl to declaration die. (gen_field_die): Equate field decl to line number. (force_namespace_die): Replace it with ... (force_decl_die): ... this. (force_type_die): New function. (setup_namespace_context): Replace use of force_namespace_die() with force_decl_die(). (gen_namespace_die): Same. (dwarf2out_imported_module_or_decl): New function. If following patch is reverted than it fixes this ICE. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15736 But that patch was applied to fix Ada bootstrap. Andrew, do you have Ada setup to see if this patches still causes trouble with Ada? Thanks. Oops. I meant following patch http://gcc.gnu.org/ml/gcc-cvs/2004-01/msg01520.html Subject: Re: [3.5 Regression] internal compiler error: in force_decl_die, at dwarf2out.c:12441
>
>
> ------- Additional Comments From dpatel at apple dot com 2004-06-19 19:29 -------
> If following patch is reverted than it fixes this ICE.
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15736
>
> But that patch was applied to fix Ada bootstrap. Andrew, do you have Ada setup to see if this patches
> still causes trouble with Ada?
Which patch, you only gave a link to this bug again? Also Ada is broken on the mainline because of
the tree-ssa merge so I cannot test Ada :(.
Thanks,
Andrew
Fixed by: * dwarf2out.c (gen_field_die): Equate decl number to die. * g++.dg/debug/pr15736.cc: New test. The master branch has been updated by Sam James <sjames@gcc.gnu.org>: https://gcc.gnu.org/g:a287ff2697f0788856a21c99098611a5ae0a4749 commit r15-4827-ga287ff2697f0788856a21c99098611a5ae0a4749 Author: Sam James <sam@gentoo.org> Date: Tue Oct 29 06:00:08 2024 +0000 testsuite: g++.dg: debug: fix test filenames gcc/testsuite/ChangeLog: PR debug/15736 PR debug/46240 * g++.dg/debug/pr15736.cc: Move to... * g++.dg/debug/pr15736.C: ...here. * g++.dg/debug/pr46240.cc: Move to... * g++.dg/debug/pr46240.C: ...here. Just curious... what caused the 20 years of delay? (In reply to Carlo Wood from comment #9) > Just curious... what caused the 20 years of delay? Sam has been auditing the testsuite to find issues like a missnamed testcase (like in this case). So the testcase was not running before but is now since he renamed it. He put the PR # in the changelog so it got into bugzilla to record a related change. |