The reinterpret_cast<Type1*>([pointer to Type2]) expressions - where sizeof(Type1) > sizeof(Type2) - cause the following warning on ARM: increases required alignment of target type warnings. An extra static_cast<void*> cast can mute the compiler, eg.: reinterpret_cast<Type1*>(static_cast<void*>([pointer to Type2])). I am going to upload several patches to fix these warnings.
Created attachment 58346 [details] Avoid increasing required alignment of target type warning on ARM (part 1) Each MacroAssembler back-end knows well if a natural alignment is required or not. So, leave them to handle the alignment. An extra ASSERT for alignment check can cause a false positive error on those architectures where an unaligned data access is available. For example on x86: ASSERT(!(static_cast<unsigned int>(&m_buffer[m_size]) % WTF_ALIGN_OF(int64_t))).
Created attachment 58357 [details] Avoid increasing required alignment of target type warning on ARM (part 2) Fix the increasing required alignment of target type warnings in ARMAssembler.
Created attachment 58362 [details] Avoid increasing required alignment of target type warning on ARM (part 3) All static_cast can be safely done. Each data is aligned to target type.
Created attachment 58365 [details] Avoid increasing required alignment of target type warning on ARM (part 4) Qt specific fix for the alignment problem.
*** This bug has been marked as a duplicate of bug 38045 ***