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 debug/51695] [4.7 Regression] ICE while compiling argyllcms package


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51695

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jan.kratochvil at redhat
                   |                            |dot com

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-01-04 11:25:57 UTC ---
One problem with such temporaries approach would be that if the temporaries are
in the whole expression evaluated only conditionally, they could have unwanted
side-effects (reading uninitialized memory, division by zero, producing NaNs
etc.) that the debugger might complain about loudly.
Say if the expression is (if_then_else (r1 < 56) (temp1) (const_int 0))
where temp1 is (mem (foo + r1)) or similar, if we evaluate it upfront, the
debugger might complain.
Another alternative would be (for a dwarf2out.c solution, so the compile time
memory issue would be still there) when we'd be finalizing all the DWARF
expressions in the CU, we'd somehow hash the larger subexpressions where it
might be beneficial and if they are long enough and occur at least twice,
create a DW_TAG_dwarf_procedure for them and just replace those subexpressions
with DW_OP_call* to that procedure.


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