Pass a valid pointer to pthread_setspecific to avoid GCC 11 warning.
This commit is contained in:
parent
a1561c3bbe
commit
b25b067491
|
@ -37,7 +37,8 @@ destr1 (void *arg)
|
||||||
{
|
{
|
||||||
puts ("set key2");
|
puts ("set key2");
|
||||||
|
|
||||||
if (pthread_setspecific (key2, (void *) 1l) != 0)
|
/* Use an arbirary but valid pointer to avoid GCC warnings. */
|
||||||
|
if (pthread_setspecific (key2, (void *) &left) != 0)
|
||||||
{
|
{
|
||||||
puts ("destr1: setspecific failed");
|
puts ("destr1: setspecific failed");
|
||||||
exit (1);
|
exit (1);
|
||||||
|
@ -53,7 +54,8 @@ destr2 (void *arg)
|
||||||
{
|
{
|
||||||
puts ("set key1");
|
puts ("set key1");
|
||||||
|
|
||||||
if (pthread_setspecific (key1, (void *) 1l) != 0)
|
/* Use an arbirary but valid pointer to avoid GCC warnings. */
|
||||||
|
if (pthread_setspecific (key1, (void *) &left) != 0)
|
||||||
{
|
{
|
||||||
puts ("destr2: setspecific failed");
|
puts ("destr2: setspecific failed");
|
||||||
exit (1);
|
exit (1);
|
||||||
|
@ -68,8 +70,9 @@ tf (void *arg)
|
||||||
/* Let the destructors work. */
|
/* Let the destructors work. */
|
||||||
left = 7;
|
left = 7;
|
||||||
|
|
||||||
if (pthread_setspecific (key1, (void *) 1l) != 0
|
/* Use an arbirary but valid pointer to avoid GCC warnings. */
|
||||||
|| pthread_setspecific (key2, (void *) 1l) != 0)
|
if (pthread_setspecific (key1, (void *) &left) != 0
|
||||||
|
|| pthread_setspecific (key2, (void *) &left) != 0)
|
||||||
{
|
{
|
||||||
puts ("tf: setspecific failed");
|
puts ("tf: setspecific failed");
|
||||||
exit (1);
|
exit (1);
|
||||||
|
|
|
@ -34,7 +34,8 @@ destr (void *arg)
|
||||||
{
|
{
|
||||||
++rounds;
|
++rounds;
|
||||||
|
|
||||||
if (pthread_setspecific (key, (void *) 1l) != 0)
|
/* Use an arbirary but valid pointer to avoid GCC warnings. */
|
||||||
|
if (pthread_setspecific (key, (void *) &rounds) != 0)
|
||||||
{
|
{
|
||||||
puts ("destr: setspecific failed");
|
puts ("destr: setspecific failed");
|
||||||
exit (1);
|
exit (1);
|
||||||
|
@ -45,7 +46,8 @@ destr (void *arg)
|
||||||
static void *
|
static void *
|
||||||
tf (void *arg)
|
tf (void *arg)
|
||||||
{
|
{
|
||||||
if (pthread_setspecific (key, (void *) 1l) != 0)
|
/* Use an arbirary but valid pointer to avoid GCC warnings. */
|
||||||
|
if (pthread_setspecific (key, (void *) &rounds) != 0)
|
||||||
{
|
{
|
||||||
puts ("tf: setspecific failed");
|
puts ("tf: setspecific failed");
|
||||||
exit (1);
|
exit (1);
|
||||||
|
|
|
@ -56,7 +56,8 @@ tf (void *arg)
|
||||||
{
|
{
|
||||||
pthread_key_t *key = (pthread_key_t *) arg;
|
pthread_key_t *key = (pthread_key_t *) arg;
|
||||||
|
|
||||||
if (pthread_setspecific (*key, (void *) -1l) != 0)
|
/* Use an arbirary but valid pointer to avoid GCC warnings. */
|
||||||
|
if (pthread_setspecific (*key, arg) != 0)
|
||||||
{
|
{
|
||||||
write_message ("setspecific failed\n");
|
write_message ("setspecific failed\n");
|
||||||
_exit (1);
|
_exit (1);
|
||||||
|
|
|
@ -59,7 +59,7 @@ tf (void *arg)
|
||||||
{
|
{
|
||||||
pthread_key_t *key = (pthread_key_t *) arg;
|
pthread_key_t *key = (pthread_key_t *) arg;
|
||||||
|
|
||||||
if (pthread_setspecific (*key, (void *) -1l) != 0)
|
if (pthread_setspecific (*key, arg) != 0)
|
||||||
{
|
{
|
||||||
write_message ("setspecific failed\n");
|
write_message ("setspecific failed\n");
|
||||||
_exit (1);
|
_exit (1);
|
||||||
|
|
|
@ -27,6 +27,9 @@ do_test (void)
|
||||||
pthread_key_t key1;
|
pthread_key_t key1;
|
||||||
pthread_key_t key2;
|
pthread_key_t key2;
|
||||||
void *value;
|
void *value;
|
||||||
|
/* Addresses of val1 and val2 are used as arbitrary but valid pointers
|
||||||
|
in calls to pthread_setspecific to avoid GCC warnings. */
|
||||||
|
char val1 = 0, val2 = 0;
|
||||||
int result = 0;
|
int result = 0;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
|
@ -45,7 +48,7 @@ do_test (void)
|
||||||
result = 1;
|
result = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = pthread_setspecific (key1, (void *) -2l);
|
err = pthread_setspecific (key1, (void *) &val1);
|
||||||
if (err != 0)
|
if (err != 0)
|
||||||
{
|
{
|
||||||
printf ("1st setspecific failed: %s\n", strerror (err));
|
printf ("1st setspecific failed: %s\n", strerror (err));
|
||||||
|
@ -58,13 +61,13 @@ do_test (void)
|
||||||
puts ("2nd getspecific == NULL\n");
|
puts ("2nd getspecific == NULL\n");
|
||||||
result = 1;
|
result = 1;
|
||||||
}
|
}
|
||||||
else if (value != (void *) -2l)
|
else if (value != (void *) &val1)
|
||||||
{
|
{
|
||||||
puts ("2nd getspecific != -2l\n");
|
puts ("2nd getspecific != &val1l\n");
|
||||||
result = 1;
|
result = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = pthread_setspecific (key1, (void *) -3l);
|
err = pthread_setspecific (key1, (void *) &val2);
|
||||||
if (err != 0)
|
if (err != 0)
|
||||||
{
|
{
|
||||||
printf ("2nd setspecific failed: %s\n", strerror (err));
|
printf ("2nd setspecific failed: %s\n", strerror (err));
|
||||||
|
@ -77,9 +80,9 @@ do_test (void)
|
||||||
puts ("3rd getspecific == NULL\n");
|
puts ("3rd getspecific == NULL\n");
|
||||||
result = 1;
|
result = 1;
|
||||||
}
|
}
|
||||||
else if (value != (void *) -3l)
|
else if (value != (void *) &val2)
|
||||||
{
|
{
|
||||||
puts ("3rd getspecific != -2l\n");
|
puts ("3rd getspecific != &val2\n");
|
||||||
result = 1;
|
result = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ static int result;
|
||||||
static void
|
static void
|
||||||
destr (void *arg)
|
destr (void *arg)
|
||||||
{
|
{
|
||||||
if (arg != (void *) -2l)
|
if (arg != (void *) &result)
|
||||||
result = 2;
|
result = 2;
|
||||||
else
|
else
|
||||||
result = 0;
|
result = 0;
|
||||||
|
@ -40,7 +40,8 @@ tf (void *arg)
|
||||||
pthread_key_t key = (pthread_key_t) (long int) arg;
|
pthread_key_t key = (pthread_key_t) (long int) arg;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
err = pthread_setspecific (key, (void *) -2l);
|
/* Use an arbirary but valid pointer to avoid GCC warnings. */
|
||||||
|
err = pthread_setspecific (key, &result);
|
||||||
if (err != 0)
|
if (err != 0)
|
||||||
result = 3;
|
result = 3;
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,8 @@ do_test (void)
|
||||||
puts ("key_create failed");
|
puts ("key_create failed");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (pthread_setspecific (k, (void *) 1) != 0)
|
/* Use an arbitrary but valid pointer as the value. */
|
||||||
|
if (pthread_setspecific (k, (void *) &k) != 0)
|
||||||
{
|
{
|
||||||
puts ("setspecific failed");
|
puts ("setspecific failed");
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -17,7 +17,8 @@ tf (void *arg)
|
||||||
for (int i = 0; i < NKEYS; ++i)
|
for (int i = 0; i < NKEYS; ++i)
|
||||||
{
|
{
|
||||||
void *p = pthread_getspecific (keys[i]);
|
void *p = pthread_getspecific (keys[i]);
|
||||||
pthread_setspecific (keys[i], (void *) 7);
|
/* Use an arbitrary but valid pointer as the value. */
|
||||||
|
pthread_setspecific (keys[i], (void *) keys);
|
||||||
if (p != NULL)
|
if (p != NULL)
|
||||||
res = p;
|
res = p;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue