> Error: The config takes exception when the address of an load/store is > unaligned. The address 0xfead844c is not properly aligned.
That complaint is from the application, and not from valgrind (memcheck). The substring 'takes exception' does not appear anywhere in the valgrind source code. Also, every line that _is_ a valgrind complaint begins with "==PID==" where PID is the process ID in decimal. The address 0xfead844c is 4-byte aligned. What alignment is the application expecting? Look at the source code of the application to find out. malloc() claims that each newly-allocated block is "suitably aligned for any built-in type", and memcheck's replacement for malloc() obeys this rule. On aarch64 the maximum required alignment is 16-byte alignment, but this is required only when using the stack pointer register SP as a base register, or for special exclusive and explicitly-ordered memory accesses that are part of multi-threaded synchronization. Otherwise, most compilers and runtime libraries use natural alignment: sizeof(x) divides &x for any builtin type; and align_of(struct) is max(align_of(members)). Therefore in practice the maximum alignment is likely to be 8-byte alignment because of the 'double' type. On x86_64 it is 16 bytes because some "multi-media" SIMD instructions require 128-bit alignment for operands in memory. aarch64 does not have this requirement, although there are VectorFloatingPoint and other SIMD loads and stores which may execute faster when aligned to 4 times the alignment of an individual element. ------------------------------------------------------------------------------ _______________________________________________ Valgrind-users mailing list Valgrind-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/valgrind-users