Z
Zorro
Hello every one. Please see if you can help. The question is not about
packing and alignment. It is about the use of qualifier __unaligned on
double indirection.
The line "(*((something**) thing))->member;" works fine on Intel and
Motorola chips and a number of compilers (including GNU). However,
with ARM chip, using Visual C++ it breaks due to datatype
misalignment. The qualifier __unaligned workd fine with one level of
indirection, as in: "((__unaligned something*) thing)->member;" but
it breaks in statement: "(*((__unaligned something**) thing))-
Is this general behavior of __unaligned for C++ language?
Is there a workaround through pointer manipulation?
Thank you very much for your help.
Zorro.
packing and alignment. It is about the use of qualifier __unaligned on
double indirection.
The line "(*((something**) thing))->member;" works fine on Intel and
Motorola chips and a number of compilers (including GNU). However,
with ARM chip, using Visual C++ it breaks due to datatype
misalignment. The qualifier __unaligned workd fine with one level of
indirection, as in: "((__unaligned something*) thing)->member;" but
it breaks in statement: "(*((__unaligned something**) thing))-
member;"
Is this general behavior of __unaligned for C++ language?
Is there a workaround through pointer manipulation?
Thank you very much for your help.
Zorro.