------- Additional Comments From ebotcazou at gcc dot gnu dot org  2004-12-02 
07:11 -------
This one is really tricky to fix: this is the classical case in which the return
value register's liveness propagates backwards until an unrelated use/clobber of
the register is encountered.  This works more or less until the regrename pass,
which locally renames the register in the latter def/use/clobber chain; so the
return value register's liveness is not masked anymore and propagates back to
the start of the basic block.  But, after reload, register liveness information
is not allowed to change at basic block boundaries so the compiler aborts on a
sanity check.

The easy workaround is to make sure that every code path in a function returning
a value really returns a value.


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ebotcazou at gcc dot gnu dot
                   |                            |org


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

Reply via email to