From a3aaa59816881c909249b68881e788152d753345 Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Tue, 21 Nov 2017 09:44:42 -0200 Subject: nptl: Add workaround for ASSERT_PTHREAD_INTERNAL_SIZE with GCC 4.9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GCC 4.9 (the minimum current supported) emits an warning for universal zero initializer ({0}) on ASSERT_PTHREAD_INTERNAL_SIZE: pthread_attr_init.c: In function ‘__pthread_attr_init_2_1’: pthread_attr_init.c:37:3: error: missing braces around initializer [-Werror=missing-braces] ASSERT_PTHREAD_INTERNAL_SIZE (pthread_attr_t, struct pthread_attr); ^ pthread_attr_init.c:37:3: error: (near initialization for ‘(anonymous).__size’) [-Werror=missing-braces] It is fact GCC BZ#53119 [1] fixed in later version (GCC5+). Since current branch is closed and there is no indication it will be backports (comment #20 in same bug report) this patch fixes by using a double bracket to zero initialize the struct. Checked on x86_64-linux-gnu with GCC 7 and GCC 4.9. * nptl/pthreadP.h (ASSERT_PTHREAD_INTERNAL_SIZE): Add workarond for -Wmissing-braces on GCC 4.9. [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53119 Signed-off-by: Adhemerval Zanella --- nptl/pthreadP.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'nptl') diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h index 1cc80b6e3a..713000e32d 100644 --- a/nptl/pthreadP.h +++ b/nptl/pthreadP.h @@ -644,7 +644,7 @@ check_stacksize_attr (size_t st) "sizeof (" #type ") != " #size) #define ASSERT_PTHREAD_INTERNAL_SIZE(type, internal) \ - _Static_assert (sizeof ((type) { 0 }).__size >= sizeof (internal), \ + _Static_assert (sizeof ((type) { { 0 } }).__size >= sizeof (internal),\ "sizeof (" #type ".__size) < sizeof (" #internal ")") #define ASSERT_PTHREAD_STRING(x) __STRING (x) -- cgit 1.4.1