mirror of
https://gcc.gnu.org/git/gcc.git
synced 2026-02-22 03:46:53 -05:00
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:
committed by
Daniel Franke
parent
111780f449
commit
d6a952df14
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user