[FFmpeg-cvslog] r15595 - trunk/libavcodec/aac_parser.c

Baptiste Coudurier baptiste.coudurier
Tue Dec 2 02:08:48 CET 2008


M?ns Rullg?rd wrote:
> Baptiste Coudurier <baptiste.coudurier at gmail.com> writes:
> 
>> M?ns Rullg?rd wrote:
>>> Baptiste Coudurier <baptiste.coudurier at gmail.com> writes:
>>>
>>>> Michael Niedermayer wrote:
>>>>> On Tue, Dec 02, 2008 at 12:05:43AM +0000, M?ns Rullg?rd wrote:
>>>>>> Michael Niedermayer <michaelni at gmx.at> writes:
>>>>>>
>>>>>>> On Sat, Oct 11, 2008 at 01:21:45PM +0200, mru wrote:
>>>>>>>> Author: mru
>>>>>>>> Date: Sat Oct 11 13:21:45 2008
>>>>>>>> New Revision: 15595
>>>>>>>>
>>>>>>>> Log:
>>>>>>>> aac_parser: fix strict aliasing violation
>>>>>>> This change is insufficient, the code still is not working without
>>>>>>> -fno-strict-aliasing
>>>>>>>
>>>>>>> gcc-4.3
>>>>>>>         .loc 1 37 0
>>>>>>>         movl    %eax, -12(%ebp)
>>>>>>> -       movl    %edx, -16(%ebp)
>>>>>>>         .loc 62 42 0
>>>>>>>         movl    -15(%ebp), %eax
>>>>>>>
>>>>>>> gcc-4.4
>>>>>>>         .loc 1 37 0
>>>>>>> -       movl    %edx, -16(%ebp)
>>>>>>>         movl    %eax, -12(%ebp)
>>>>>>>         .loc 62 42 0
>>>>>>>         movl    -15(%ebp), %eax
>>>>>> Damn.  It worked with all compilers I had installed at the time.  Can
>>>>>> you think of a solution?
>>>>> in order of most ugly to least
>>>>> 1. lots and more union
>>>>> 2. randomly change the code until it works with the current gccs
>>>>> 3. pick another bitstream reader, i think ones that read bytes should work,
>>>>>    but i did not test this
>>>>> 4. add -fno-strict-aliasing to aac_parser.c (and possibly ac3_parser.c)
>>>>>    compilation flags
>>>> My 2 cents: do you know why this does not happen with ac3 parser ?
>>> Because there's a function call there preventing the compiler from
>>> seeing this "optimisation".
>> Wouldn't this be an acceptable solution ?
> 
> Would what be an acceptable solution?
> 

Spliting the code in another function to hide this "optimization" to the
compiler.

-- 
Baptiste COUDURIER                              GnuPG Key Id: 0x5C1ABAAA
Key fingerprint                 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
checking for life_signs in -lkenny... no




More information about the ffmpeg-cvslog mailing list