From 33fa406cb1a36ecd9b3e4fb2da9ba4c4bdfeaf19 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 6 Jun 2017 09:03:03 +0000 Subject: [PATCH] Fix pub_tool_basics.h build issue with g++ 4.4.7. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit g++ 4.4.7 doesn't accept union field initializers: In file included from ../../include/pub_tool_vki.h:50, from valgrind_cpp_test.cpp:13: ../../include/vki/vki-linux.h: In function ‘vki_cmsghdr* __vki_cmsg_nxthdr(void*, __vki_kernel_size_t, vki_cmsghdr*)’: ../../include/vki/vki-linux.h:673: error: expected primary-expression before ‘.’ token Assign value after declaration which works for any g++ version. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16437 --- include/pub_tool_basics.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/pub_tool_basics.h b/include/pub_tool_basics.h index 64e1929bff..e3af28339f 100644 --- a/include/pub_tool_basics.h +++ b/include/pub_tool_basics.h @@ -480,7 +480,8 @@ static inline Bool sr_EQ ( UInt sysno, SysRes sr1, SysRes sr2 ) { union { \ void *in; \ D out; \ - } var = {.in = (void *) (x)}; var.out; \ + } var; \ + var.in = (void *) (x); var.out; \ }) // Poor man's static assert -- 2.47.2