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

Måns Rullgård mans
Tue Dec 2 02:01:59 CET 2008


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?

-- 
M?ns Rullg?rd
mans at mansr.com




More information about the ffmpeg-cvslog mailing list