This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug pch/54117] [4.8 Regression] FAIL: ./decl-3.h -O0 -g (internal compiler error)
- From: "stevenb.gcc at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 08 Jan 2013 18:04:09 +0000
- Subject: [Bug pch/54117] [4.8 Regression] FAIL: ./decl-3.h -O0 -g (internal compiler error)
- Auto-submitted: auto-generated
- References: <bug-54117-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54117
--- Comment #11 from stevenb.gcc at gmail dot com <stevenb.gcc at gmail dot com> 2013-01-08 18:04:09 UTC ---
> All that to avoid one #include "output.h" in one file?
Is that one little thing really the only change you see? I see a
different picture.
The change is a major step in the direction of making a clear cut
between the middle/back end and the front ends. A front end should not
output assembly, period, if we want the front ends to become separate
libraries, in the long run, that can be used by external tools (static
checkers, IDEs, etc.) like clang. For the long term, this is IMHO the
only viable solution for keeping the GCC front ends relevant.
The change also allows the compiler to open the assembler file in
write-only mode and to open it only after the front end is done. My
plan is to postponed it even further: for GCC 4.9 I'd like to work on
streaming slim LTO objects directly to a .o file, without going
through an assembler file at all (this is relatively simple for ELF
targets).
Finally, the change also simplifies the PCH mechanism further. If
we're ever going to replace PCH-as-a-memory-dump with something
streamed, we'll have to make an effort at only streaming IR objects,
not assembler output.
Had I known this change would break stabs like this, I'd obviously
have tried to solve that problem first. But to back out the change now
would be a mistake. Nobody is going to fix those *out.c back ends, as
you very well know.