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
|
b
|
|
| 1074 | 1074 | RtsFlags.ParFlags.nNodes = getNumberOfProcessors(); |
| 1075 | 1075 | #endif |
| 1076 | 1076 | } else { |
| 1077 | | RtsFlags.ParFlags.nNodes |
| 1078 | | = strtol(rts_argv[arg]+2, (char **) NULL, 10); |
| 1079 | | if (RtsFlags.ParFlags.nNodes <= 0) { |
| | 1077 | int nNodes; |
| | 1078 | nNodes = strtol(rts_argv[arg]+2, (char **) NULL, 10); |
| | 1079 | if (nNodes <= 0) { |
| 1080 | 1080 | errorBelch("bad value for -N"); |
| 1081 | 1081 | error = rtsTrue; |
| 1082 | 1082 | } |
| 1083 | 1083 | #if defined(PROFILING) |
| 1084 | | if (RtsFlags.ParFlags.nNodes > 1) { |
| | 1084 | if (nNodes > 1) { |
| 1085 | 1085 | errorBelch("bad option %s: only -N1 is supported with profiling", rts_argv[arg]); |
| 1086 | 1086 | error = rtsTrue; |
| 1087 | 1087 | } |
| 1088 | 1088 | #endif |
| | 1089 | RtsFlags.ParFlags.nNodes = (nat)nNodes; |
| 1089 | 1090 | } |
| 1090 | 1091 | ) break; |
| 1091 | 1092 | |