be very explicit that readnone/readonly functions can't

throw exceptions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70788 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2009-05-03 18:49:37 +00:00
parent c781a243a3
commit 7a57c5bb08

View File

@ -1066,7 +1066,8 @@ exception it throws) based strictly on its arguments, without dereferencing any
pointer arguments or otherwise accessing any mutable state (e.g. memory, control
registers, etc) visible to caller functions. It does not write through any
pointer arguments (including <tt><a href="#byval">byval</a></tt> arguments) and
never changes any state visible to callers.</dd>
never changes any state visible to callers. readnone functions may not throw
an exception that escapes into the caller.</dd>
<dt><tt><a name="readonly">readonly</a></tt></dt>
<dd>This attribute indicates that the function does not write through any
@ -1075,7 +1076,8 @@ or otherwise modify any state (e.g. memory, control registers, etc) visible to
caller functions. It may dereference pointer arguments and read state that may
be set in the caller. A readonly function always returns the same value (or
throws the same exception) when called with the same set of arguments and global
state.</dd>
state. readonly functions may not throw an exception that escapes into the
caller.</dd>
<dt><tt><a name="ssp">ssp</a></tt></dt>
<dd>This attribute indicates that the function should emit a stack smashing