mirror of
git://sourceware.org/git/glibc.git
synced 2025-04-12 14:21:18 +08:00
2005-07-11 Jakub Jelinek <jakub@redhat.com>
[BZ #1102] * sysdeps/pthread/pthread.h (PTHREAD_MUTEX_INITIALIZER, PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP, PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP, PTHREAD_MUTEX_ADAPTIVE_NP, PTHREAD_RWLOCK_INITIALIZER, PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP, PTHREAD_COND_INITIALIZER): Supply zeros for all fields in the structure. * Makefile (tests): Add tst-initializers1. (CFLAGS-tst-initializers1.c): Set. * tst-initializers1.c: New test.
This commit is contained in:
parent
5d9ad98c7a
commit
242a656c09
@ -241,7 +241,7 @@ tests = tst-attr1 tst-attr2 tst-attr3 \
|
||||
tst-backtrace1 \
|
||||
tst-oddstacklimit \
|
||||
tst-vfork1 tst-vfork2 tst-vfork1x tst-vfork2x \
|
||||
tst-getpid1 tst-getpid2
|
||||
tst-getpid1 tst-getpid2 tst-initializers1
|
||||
xtests = tst-setuid1 tst-setuid1-static
|
||||
|
||||
# Files which must not be linked with libpthread.
|
||||
@ -410,6 +410,7 @@ CFLAGS-tst-cleanupx4.c += -fexceptions
|
||||
CFLAGS-tst-oncex3.c += -fexceptions
|
||||
CFLAGS-tst-oncex4.c += -fexceptions
|
||||
CFLAGS-tst-align.c += $(stack-align-test-flags)
|
||||
CFLAGS-tst-initializers1.c += -W -Wall -Werror
|
||||
|
||||
tst-cancel7-ARGS = --command "$(built-program-cmd)"
|
||||
tst-cancelx7-ARGS = $(tst-cancel7-ARGS)
|
||||
|
48
nptl/tst-initializers1.c
Normal file
48
nptl/tst-initializers1.c
Normal file
@ -0,0 +1,48 @@
|
||||
/* Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Jakub Jelinek <jakub@redhat.com>, 2005.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#include <pthread.h>
|
||||
|
||||
pthread_mutex_t mtx_normal = PTHREAD_MUTEX_INITIALIZER;
|
||||
pthread_mutex_t mtx_recursive = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
|
||||
pthread_mutex_t mtx_errorchk = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP;
|
||||
pthread_mutex_t mtx_adaptive = PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP;
|
||||
pthread_rwlock_t rwl_normal = PTHREAD_RWLOCK_INITIALIZER;
|
||||
pthread_rwlock_t rwl_writer
|
||||
= PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP;
|
||||
pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
if (mtx_normal.__data.__kind != PTHREAD_MUTEX_TIMED_NP)
|
||||
return 1;
|
||||
if (mtx_recursive.__data.__kind != PTHREAD_MUTEX_RECURSIVE_NP)
|
||||
return 1;
|
||||
if (mtx_errorchk.__data.__kind != PTHREAD_MUTEX_ERRORCHECK_NP)
|
||||
return 1;
|
||||
if (mtx_adaptive.__data.__kind != PTHREAD_MUTEX_ADAPTIVE_NP)
|
||||
return 1;
|
||||
if (rwl_normal.__data.__flags != PTHREAD_RWLOCK_PREFER_READER_NP)
|
||||
return 1;
|
||||
if (rwl_writer.__data.__flags
|
||||
!= PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user