> 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

Reply via email to