[LLVMbugs] [Bug 5042] 'Invoke' llvm instruction does not function per documentation

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Thu Sep 24 14:17:41 PDT 2009


Daniel <zrega at theophad.tmbx.com> changed:

           What    |Removed                     |Added
             Status|RESOLVED                    |REOPENED
         Resolution|LATER                       |

--- Comment #2 from Daniel <zrega at theophad.tmbx.com>  2009-09-24 16:17:40 ---
Re-assign this bug to documentation.

(In reply to comment #1)
> Currently the unwind instruction only allows you to rethrow an
> exception you just caught.  

I used unwind in this example.  If I create a bug that creates an exceptional
circumstance (ie a call to an unlinked function) invoke will still fail to
catch this.  Still, while this may be known to the developers, but if this has
been the current operation from before v2.0, then it is well know, and thus
should be documented as such.  

*To users this is an unknown issue.*

> It doesn't allow you to throw a new
> exception.  Well, the interpreter supports this but the code
> generator does not.  This is a known limitation that will hopefully
> be overcome one day.

And regardless of how it is thrown, invoke doesn't work by itself, it needs
external classes to function.  Right? 

Re-assign this bug to documentation.

Again, this may not be a code bug, it could be a documentation issue.  From:


'exception label': the label reached when a callee returns with the unwind

"The 'invoke' instruction causes control to transfer to a specified function,
with the possibility of control flow transfer to either the 'normal' label or
the 'exception' label. If the callee function returns with the "ret"
instruction, control flow will return to the "normal" label. If the callee (or
any indirect callees) returns with the "unwind" instruction, control is
interrupted and continued at the dynamically nearest "exception" label."

If I can't trust the documentation, how in the world am I to develop anything
on this platform?  The documentation for non pre-release software should be
accurate as to the latest release.  A work in progress should have final specs
that are distinct from the documentation for non pre-release software.

To fix:  State current limitations of this instruction and when it can
*actually* be used in "LangRef.html".

Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

More information about the llvm-bugs mailing list