From: Mark Wielaard Date: Tue, 6 Jun 2017 09:03:03 +0000 (+0000) Subject: Fix pub_tool_basics.h build issue with g++ 4.4.7. X-Git-Tag: VALGRIND_3_14_0~326 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=33fa406cb1a36ecd9b3e4fb2da9ba4c4bdfeaf19;p=thirdparty%2Fvalgrind.git Fix pub_tool_basics.h build issue with g++ 4.4.7. 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 --- 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