summaryrefslogtreecommitdiff
path: root/rts/PrimOps.cmm
diff options
context:
space:
mode:
authorNorman Ramsey <nr@eecs.harvard.edu>2007-08-20 16:41:05 +0000
committerNorman Ramsey <nr@eecs.harvard.edu>2007-08-20 16:41:05 +0000
commit0731082288212fbc6d68204b609f201b8a79149a (patch)
treea5e70994e3c1e47f3da5cef14688e877ec4533b8 /rts/PrimOps.cmm
parent1cb7a8702e066ee74a6687f7f896ed77d0c25d8a (diff)
downloadhaskell-0731082288212fbc6d68204b609f201b8a79149a.tar.gz
annotate C-- calls that do not return
* The correct definition of C-- requires that a procedure not 'fall off the end'. The 'never returns' annotation tells us if a (foreign) call is not going to return. Validated!
Diffstat (limited to 'rts/PrimOps.cmm')
-rw-r--r--rts/PrimOps.cmm12
1 files changed, 6 insertions, 6 deletions
diff --git a/rts/PrimOps.cmm b/rts/PrimOps.cmm
index 4cce586825..f3f23d6ae0 100644
--- a/rts/PrimOps.cmm
+++ b/rts/PrimOps.cmm
@@ -1969,7 +1969,7 @@ waitReadzh_fast
{
/* args: R1 */
#ifdef THREADED_RTS
- foreign "C" barf("waitRead# on threaded RTS");
+ foreign "C" barf("waitRead# on threaded RTS") never returns;
#else
ASSERT(StgTSO_why_blocked(CurrentTSO) == NotBlocked::I16);
@@ -1986,7 +1986,7 @@ waitWritezh_fast
{
/* args: R1 */
#ifdef THREADED_RTS
- foreign "C" barf("waitWrite# on threaded RTS");
+ foreign "C" barf("waitWrite# on threaded RTS") never returns;
#else
ASSERT(StgTSO_why_blocked(CurrentTSO) == NotBlocked::I16);
@@ -2011,7 +2011,7 @@ delayzh_fast
#endif
#ifdef THREADED_RTS
- foreign "C" barf("delay# on threaded RTS");
+ foreign "C" barf("delay# on threaded RTS") never returns;
#else
/* args: R1 (microsecond delay amount) */
@@ -2077,7 +2077,7 @@ asyncReadzh_fast
CInt reqID;
#ifdef THREADED_RTS
- foreign "C" barf("asyncRead# on threaded RTS");
+ foreign "C" barf("asyncRead# on threaded RTS") never returns;
#else
/* args: R1 = fd, R2 = isSock, R3 = len, R4 = buf */
@@ -2105,7 +2105,7 @@ asyncWritezh_fast
CInt reqID;
#ifdef THREADED_RTS
- foreign "C" barf("asyncWrite# on threaded RTS");
+ foreign "C" barf("asyncWrite# on threaded RTS") never returns;
#else
/* args: R1 = fd, R2 = isSock, R3 = len, R4 = buf */
@@ -2133,7 +2133,7 @@ asyncDoProczh_fast
CInt reqID;
#ifdef THREADED_RTS
- foreign "C" barf("asyncDoProc# on threaded RTS");
+ foreign "C" barf("asyncDoProc# on threaded RTS") never returns;
#else
/* args: R1 = proc, R2 = param */