Bug 40410

Summary: Avoid increasing required alignment of target type warning on ARM
Product: WebKit Reporter: Gabor Loki <loki>
Component: JavaScriptCoreAssignee: Gabor Loki <loki>
Status: RESOLVED DUPLICATE    
Severity: Minor    
Priority: P3    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Attachments:
Description Flags
Avoid increasing required alignment of target type warning on ARM (part 1)
none
Avoid increasing required alignment of target type warning on ARM (part 2)
none
Avoid increasing required alignment of target type warning on ARM (part 3)
none
Avoid increasing required alignment of target type warning on ARM (part 4) none

Gabor Loki
Reported 2010-06-10 02:17:41 PDT
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.
Attachments
Avoid increasing required alignment of target type warning on ARM (part 1) (2.83 KB, patch)
2010-06-10 02:45 PDT, Gabor Loki
no flags
Avoid increasing required alignment of target type warning on ARM (part 2) (2.74 KB, patch)
2010-06-10 03:53 PDT, Gabor Loki
no flags
Avoid increasing required alignment of target type warning on ARM (part 3) (7.66 KB, patch)
2010-06-10 04:31 PDT, Gabor Loki
no flags
Avoid increasing required alignment of target type warning on ARM (part 4) (2.04 KB, patch)
2010-06-10 05:11 PDT, Gabor Loki
no flags
Gabor Loki
Comment 1 2010-06-10 02:45:52 PDT
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))).
Gabor Loki
Comment 2 2010-06-10 03:53:39 PDT
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.
Gabor Loki
Comment 3 2010-06-10 04:31:25 PDT
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.
Gabor Loki
Comment 4 2010-06-10 05:11:53 PDT
Created attachment 58365 [details] Avoid increasing required alignment of target type warning on ARM (part 4) Qt specific fix for the alignment problem.
Gabor Loki
Comment 5 2010-07-15 05:58:20 PDT
*** This bug has been marked as a duplicate of bug 38045 ***
Note You need to log in before you can comment on or make changes to this bug.