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...