[FFmpeg-devel] [RFC UNTESTED PATCH] Add IA-64 assembly byteswapping functions.

Måns Rullgård mans
Fri Oct 24 14:00:03 CEST 2008


Diego Biurrun wrote:
> On Thu, Oct 23, 2008 at 05:40:36PM -0700, Eli Friedman wrote:
>> On Thu, Oct 23, 2008 at 12:37 AM, Diego Biurrun <diego at biurrun.de> wrote:
>> >> +static av_always_inline av_const uint16_t bswap_16(uint16_t x)
>> >> +{
>> >> +    uint16_t __v;
>> >
>> > This is an illegal variable name, names starting with __ are reserved
>> > for the system.  Please educate the glib guys about this.
>>
>> This code is originally from the system header byteswap.h.  glibc
>> can't use any unreserved identifiers there because they could be
>> redefined.
>
> How does this apply to local variables in functions?  More so if it is

The standards do not mention anything about local variables made globally
visible like that.

> just called plain 'v'?  Do you think glib has to protect itself from
>
> #define v w

An inline function defines a new scope for its arguments and local variables,
so the situation is a bit better than for macros.  There is still the risk
that some symbol used locally has been #defined to something that isn't a
valid identifier, e.g. a number.  The convention of using uppercase for
non-function-like macros takes care of avoiding most such conflicts.

> ?  Not that many programs will compile with that textual substitution in
> place...

Never underestimate the "creativity" of a glib user.

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




More information about the ffmpeg-devel mailing list