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

Aldy Hernandez <aldyh at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |WAITING
   Last reconfirmed|                            |2011.02.15 15:36:35
     Ever Confirmed|0                           |1

--- Comment #1 from Aldy Hernandez <aldyh at gcc dot gnu.org> 2011-02-15 
15:36:35 UTC ---
[I'm waiting for Richard to comment on this.  This is from an email exchange. 
Recording here, so I don't lose track.]

This rather convoluted testcase, has us jumping through hoops that eventually
inline a GIMPLE_ASM into the virtual dispose() function.

When we do our initial scan of inline asms in the diagnose_tm_blocks pass,
inlining has not run, so we don't realize dispose() will eventually contain an
inline asm.

I'm this close to just adding a sanity pass through the BBs in the final tmmark
pass.  At least the source would be readable and maintainable.

How about instead of ICEing in expand_block_tm() when encountering inline asms,
we error out.  We have all the context we need to bitch that whatever the
inliner did was not right.  Or are you sure we could've forseen this ASM ahead
of time, so the gcc_unreachable() stands as is?

Reply via email to