search for: catchend

Displaying 3 results from an estimated 3 matches for "catchend".

Did you mean: catched
2015 May 18
4
[LLVMdev] New EH representation for MSVC compatibility
...xcept function is not inlined, we can simply flip the "noexcept" bit in the EH info. There's a similar optimization we can do for Itanium that we miss today. > Invokes that are reached after a catchblock without following any unwind > edges must transitively unwind to the first catchend block that the > catchblock unwinds to. > > > > I’m not sure I understand this correctly. In particular, I’m confused > about the roles of resume and catchend. > catchendblock is really there to support figuring out which calls were inside the catch scope. resume has two role...
2015 May 15
8
[LLVMdev] RFC: New EH representation for MSVC compatibility
...a terminator, no instructions can be inserted into a catchblock. The MSVC personality function requires more than just a pointer to RTTI data, so a variable list of operands is accepted. For an Itanium personality, only one RTTI operand is needed. The ‘unwind’ label of a catchblock must point to a catchend. catchendblock ---------------- catchend unwind label %nextaction The catchend is a terminator that unconditionally unwinds to the next action. It is merely a placeholder to help reconstruct which invokes were part of the catch blocks of a try. Invokes that are reached after a catchblock without...
2015 May 18
2
[LLVMdev] RFC: New EH representation for MSVC compatibility
...'m wondering what > prevents reordering a call across a resume. Is this just something that > code motion optimizations are expected to check for explicitly to avoid > introducing UB per the "Executing such an invoke [or call] that does not > transitively unwind to the correct catchend block has undefined behavior" > rule? > Yes, crossing a resume from a catchblock ends the lifetime of the exception object, so I'd say that's a "writes escaped memory" constraint. That said, a resume after a cleanupblock doesn't, but I'm not sure it's worth...