[FFmpeg-devel] [PATCH]Disable DECLARE_ASM_CONST workaround for icc 12

Måns Rullgård mans
Sat Jun 5 16:56:36 CEST 2010


Reimar D?ffinger <Reimar.Doeffinger at gmx.de> writes:

> On Sat, Jun 05, 2010 at 11:33:08AM +0100, M?ns Rullg?rd wrote:
>> Carl Eugen Hoyos <cehoyos at ag.or.at> writes:
>> 
>> > Hi!
>> >
>> > Intel icc finally supports __attribute__((used)) correctly, so the
>> > work-around for DECLARE_ASM_CONST can be disabled from upcoming
>> > version 12 on.
>> >
>> > Please comment, Carl Eugen
>> >
>> > Index: libavutil/mem.h
>> > ===================================================================
>> > --- libavutil/mem.h	(revision 23468)
>> > +++ libavutil/mem.h	(working copy)
>> > @@ -28,7 +28,7 @@
>> >
>> >  #include "attributes.h"
>> >
>> > -#if defined(__ICC) || defined(__SUNPRO_C)
>> > +#if defined(__ICC) && _ICC < 1200 || defined(__SUNPRO_C)
>> >      #define DECLARE_ALIGNED(n,t,v)      t __attribute__ ((aligned (n))) v
>> >      #define DECLARE_ASM_CONST(n,t,v)    const t __attribute__ ((aligned (n))) v
>> >  #elif defined(__TI_COMPILER_VERSION__)
>> 
>> IMO this problem should be solved differently.  Combining it with the
>> alignment macro is weird to say the least.
>
> I was never supposed to be combined with the aligned macro, that's
> why the DECLARE_ASM_CONST was added.

DECLARE_ASM_CONST expands to something containing an alignment
specifier, and that is IMO mixing unrelated things.  A better solution
would be to do something like
  #define static_used static __attribute__((used))
when that attribute works and to nothing otherwise, then use that in a
normal DECLARE_ALIGNED invocation if extra alignment is required.

> The DECLARE_ALIGNED actually is and always was the same for ICC as
> for GCC.

That is beside the point.

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



More information about the ffmpeg-devel mailing list