From 1eae02d09dc4ff201b2604317ad64b9e56f15cb1 Mon Sep 17 00:00:00 2001
From: Duncan Coutts <duncan@well-typed.com>
Date: Thu, 27 Oct 2011 13:16:24 +0100
Subject: [PATCH 1/2] Use signed comparison for +RTS -N x <= 0 test

Otherwise we can use +RTS -N-1 and get 2^32 or 2^64 capabilities
which doesn't work out so well...
---
 rts/RtsFlags.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/rts/RtsFlags.c b/rts/RtsFlags.c
index dcfedc0..d6da873 100644
--- a/rts/RtsFlags.c
+++ b/rts/RtsFlags.c
@@ -1074,18 +1074,19 @@ error = rtsTrue;
                     RtsFlags.ParFlags.nNodes = getNumberOfProcessors();
 #endif
 		} else {
-		    RtsFlags.ParFlags.nNodes
-		      = strtol(rts_argv[arg]+2, (char **) NULL, 10);
-		    if (RtsFlags.ParFlags.nNodes <= 0) {
+		    int nNodes;
+		    nNodes = strtol(rts_argv[arg]+2, (char **) NULL, 10);
+		    if (nNodes <= 0) {
 		      errorBelch("bad value for -N");
 		      error = rtsTrue;
 		    }
 #if defined(PROFILING)
-                    if (RtsFlags.ParFlags.nNodes > 1) {
+                    if (nNodes > 1) {
                         errorBelch("bad option %s: only -N1 is supported with profiling", rts_argv[arg]);
 		      error = rtsTrue;
                     }
 #endif
+                    RtsFlags.ParFlags.nNodes = (nat)nNodes;
 		}
 		) break;
 
-- 
1.7.3.4


