Mark Wielaard e1e5e5
commit 0d4a917777828f652fcc8e41c6051100052c9d14
Mark Wielaard e1e5e5
Author: mjw <mjw@a5019735-40e9-0310-863c-91ae7b9d1cf9>
Mark Wielaard e1e5e5
Date:   Tue Jun 6 09:03:03 2017 +0000
Mark Wielaard e1e5e5
Mark Wielaard e1e5e5
    Fix pub_tool_basics.h build issue with g++ 4.4.7.
Mark Wielaard e1e5e5
    
Mark Wielaard e1e5e5
    g++ 4.4.7 doesn't accept union field initializers:
Mark Wielaard e1e5e5
    In file included from ../../include/pub_tool_vki.h:50,
Mark Wielaard e1e5e5
                     from valgrind_cpp_test.cpp:13:
Mark Wielaard e1e5e5
    ../../include/vki/vki-linux.h: In function ‘vki_cmsghdr* __vki_cmsg_nxthdr(void*, __vki_kernel_size_t, vki_cmsghdr*)’:
Mark Wielaard e1e5e5
    ../../include/vki/vki-linux.h:673: error: expected primary-expression before ‘.’ token
Mark Wielaard e1e5e5
    
Mark Wielaard e1e5e5
    Assign value after declaration which works for any g++ version.
Mark Wielaard e1e5e5
    
Mark Wielaard e1e5e5
    git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16437 a5019735-40e9-0310-863c-91ae7b9d1cf9
Mark Wielaard e1e5e5
Mark Wielaard e1e5e5
diff --git a/include/pub_tool_basics.h b/include/pub_tool_basics.h
Mark Wielaard e1e5e5
index 64e1929..e3af283 100644
Mark Wielaard e1e5e5
--- a/include/pub_tool_basics.h
Mark Wielaard e1e5e5
+++ b/include/pub_tool_basics.h
Mark Wielaard e1e5e5
@@ -480,7 +480,8 @@ static inline Bool sr_EQ ( UInt sysno, SysRes sr1, SysRes sr2 ) {
Mark Wielaard e1e5e5
       union {                                \
Mark Wielaard e1e5e5
          void *in;                           \
Mark Wielaard e1e5e5
          D out;                              \
Mark Wielaard e1e5e5
-      } var = {.in = (void *) (x)}; var.out; \
Mark Wielaard e1e5e5
+      } var;                                 \
Mark Wielaard e1e5e5
+      var.in = (void *) (x); var.out;        \
Mark Wielaard e1e5e5
    })
Mark Wielaard e1e5e5
 
Mark Wielaard e1e5e5
 // Poor man's static assert