Browse Source
GCC 4.8 and higher implement 16 byte static data alignment on 64-bit. This means that the 24-byte param_info_s variables are 16 byte aligned by GCC and that messes up the assumption that the address of the second parameter is at ¶m[0]+sizeof(param[0]). When compiled with clang it is true, with gcc is is not true. See https://llvm.org/bugs/show_bug.cgi?format=multiple&id=18006 The fix is needed for GCC >=4.8 only. Clang works fine without this. Added __attribute__((aligned(16))) to first member of param_info_s. Signed-off-by: Mark Charlebois <charlebm@gmail.com>sbg
1 changed files with 18 additions and 1 deletions
Loading…
Reference in new issue