backport: [multiple changes]

2006-12-18  Daniel Franke  <franke.daniel@gmail.com>

	Backport from mainline:
	2006-12-04  Daniel Franke  <franke.daniel@gmail.com>

	PR libgomp/29949
	* env.c (omp_set_num_threads): Set illegal thread count to 1.

	Backport from mainline:
	2006-11-09  Uros Bizjak  <ubizjak@gmail.com>

	* env.c (parse_schedule): Reject out of range values.
	(parse_unsigned_long): Reject out of range, negative
	or zero values.

From-SVN: r119995
This commit is contained in:
Daniel Franke
2006-12-17 18:27:47 -05:00
committed by Daniel Franke
parent 111780f449
commit d6a952df14
2 changed files with 28 additions and 3 deletions

View File

@@ -1,3 +1,18 @@
2006-12-18 Daniel Franke <franke.daniel@gmail.com>
Backport from mainline:
2006-12-04 Daniel Franke <franke.daniel@gmail.com>
PR libgomp/29949
* env.c (omp_set_num_threads): Set illegal thread count to 1.
Backport from mainline:
2006-11-09 Uros Bizjak <ubizjak@gmail.com>
* env.c (parse_schedule): Reject out of range values.
(parse_unsigned_long): Reject out of range, negative
or zero values.
2006-12-04 Eric Botcazou <ebotcazou@libertysurf.fr>
* configure: Regenerate.

View File

@@ -49,6 +49,7 @@ static void
parse_schedule (void)
{
char *env, *end;
unsigned long value;
env = getenv ("OMP_SCHEDULE");
if (env == NULL)
@@ -85,11 +86,17 @@ parse_schedule (void)
if (*env == '\0')
goto invalid;
gomp_run_sched_chunk = strtoul (env, &end, 10);
errno = 0;
value = strtoul (env, &end, 10);
if (errno)
goto invalid;
while (isspace ((unsigned char) *end))
++end;
if (*end != '\0')
goto invalid;
gomp_run_sched_chunk = value;
return;
unknown:
@@ -99,7 +106,6 @@ parse_schedule (void)
invalid:
gomp_error ("Invalid value for chunk size in "
"environment variable OMP_SCHEDULE");
gomp_run_sched_chunk = 1;
return;
}
@@ -121,7 +127,11 @@ parse_unsigned_long (const char *name, unsigned long *pvalue)
if (*env == '\0')
goto invalid;
errno = 0;
value = strtoul (env, &end, 10);
if (errno || (long) value <= 0)
goto invalid;
while (isspace ((unsigned char) *end))
++end;
if (*end != '\0')
@@ -215,7 +225,7 @@ initialize_env (void)
void
omp_set_num_threads (int n)
{
gomp_nthreads_var = n;
gomp_nthreads_var = (n > 0 ? n : 1);
}
void