Bug 90666

Summary: GCC can't compile NEONHelpers.h
Product: WebKit Reporter: yosin
Component: SVGAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: rgabor, zherczeg, zimmermann
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
proposed patch none

Description yosin 2012-07-06 01:49:23 PDT
Here is error message. It seems some platforms enabling uninitialized variable warning (see below.)

third_party/WebKit/Source/WebCore/platform/graphics/filters/arm/NEONHelpers.h: In function 'float32x4_t WebCore::loadRGBA8AsFloat(uint32_t*)':
third_party/WebKit/Source/WebCore/platform/graphics/filters/arm/NEONHelpers.h:40:65: error: 'temporary1' is used uninitialized in this function [-Werror=uninitialized]

Could you fix this? Sorry, I'm not familiar with ARM and NEON.
Thanks in advance.
Comment 1 yosin 2012-07-06 02:05:28 PDT
Introduced by:
http://trac.webkit.org/changeset/121900
Comment 2 Zoltan Herczeg 2012-07-06 02:07:32 PDT
Gabor is working on it.
Comment 3 Gabor Rapcsanyi 2012-07-06 02:25:56 PDT
Created attachment 151044 [details]
proposed patch

Fixed the defines of NEON intrinsics.
Comment 4 Zoltan Herczeg 2012-07-06 02:34:03 PDT
Comment on attachment 151044 [details]
proposed patch

r=me
Comment 5 yosin 2012-07-06 02:36:56 PDT
Can we do something like below?

uint32x2_t temporary0 = 0;
uint32x2_t temporary1 = vset_lane_u32(*source, temporary0, 0);

I'm not sure how to initialize uint32x2_t.
Comment 6 Gabor Rapcsanyi 2012-07-06 02:39:49 PDT
(In reply to comment #5)
> Can we do something like below?
> 
> uint32x2_t temporary0 = 0;
> uint32x2_t temporary1 = vset_lane_u32(*source, temporary0, 0);
> 
> I'm not sure how to initialize uint32x2_t.

Yes this just hide the problem from older compilers.

I made another bug for the real problem: 
https://bugs.webkit.org/show_bug.cgi?id=90669
Comment 7 Zoltan Herczeg 2012-07-06 02:50:54 PDT
> Yes this just hide the problem from older compilers.

The ifdefs were clearly wrong, if ARM_NEON_INTRINSICS is not defined, it should not be compiled.

On the long run, we should do something with the uninitalized variable. From our point if view, the initialization is really unnecessary, and would reduce the performance. Would be good to tell the compiler to ignore this message.
Comment 8 Gabor Rapcsanyi 2012-07-06 05:54:29 PDT
Patch landed: http://trac.webkit.org/changeset/121951