be very explicit that readnone/readonly functions can't
authorChris Lattner <sabre@nondot.org>
Sun, 3 May 2009 18:49:37 +0000 (18:49 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 3 May 2009 18:49:37 +0000 (18:49 +0000)
throw exceptions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70788 91177308-0d34-0410-b5e6-96231b3b80d8

docs/LangRef.html

index be8ff73331801eb5e13f89d268a1f6592c9034f7..1a9567a2b39dd6253d2f2c878c75f310cdf595c5 100644 (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