This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug pch/54117] [4.8 Regression] FAIL: ./decl-3.h -O0 -g (internal compiler error)


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]