diff --git a/doc/developer.texi b/doc/developer.texi index 1c29ae0e14..c11a5ef7d0 100644 --- a/doc/developer.texi +++ b/doc/developer.texi @@ -169,6 +169,14 @@ For externally visible symbols, each library has its own prefix. Check the existing code and choose names accordingly. @end itemize +Furthermore, name space reserved for the system should not be invaded. +Identifiers ending in @code{_t} are reserved by +@url{http://pubs.opengroup.org/onlinepubs/007904975/functions/xsh_chap02_02.html#tag_02_02_02, POSIX}. +Also avoid names starting with @code{__} or @code{_} followed by an uppercase +letter as they are reserved by the C standard. Names starting with @code{_} +are reserved at the file level and may not be used for externally visible +symbols. If in doubt, just avoid names starting with @code{_} altogether. + @subsection Miscellaneous conventions @itemize @bullet @item diff --git a/libavutil/internal.h b/libavutil/internal.h index 462f08c44c..2dacb2c5af 100644 --- a/libavutil/internal.h +++ b/libavutil/internal.h @@ -60,7 +60,7 @@ // Some broken preprocessors need a second expansion // to be forced to tokenize __VA_ARGS__ -#define EXPAND(x) x +#define E1(x) x #define LOCAL_ALIGNED_A(a, t, v, s, o, ...) \ uint8_t la_##v[sizeof(t s o) + (a)]; \ @@ -70,16 +70,16 @@ DECLARE_ALIGNED(a, t, la_##v) s o; \ t (*v) o = la_##v -#define LOCAL_ALIGNED(a, t, v, ...) EXPAND(LOCAL_ALIGNED_A(a, t, v, __VA_ARGS__,,)) +#define LOCAL_ALIGNED(a, t, v, ...) E1(LOCAL_ALIGNED_A(a, t, v, __VA_ARGS__,,)) #if HAVE_LOCAL_ALIGNED_8 -# define LOCAL_ALIGNED_8(t, v, ...) EXPAND(LOCAL_ALIGNED_D(8, t, v, __VA_ARGS__,,)) +# define LOCAL_ALIGNED_8(t, v, ...) E1(LOCAL_ALIGNED_D(8, t, v, __VA_ARGS__,,)) #else # define LOCAL_ALIGNED_8(t, v, ...) LOCAL_ALIGNED(8, t, v, __VA_ARGS__) #endif #if HAVE_LOCAL_ALIGNED_16 -# define LOCAL_ALIGNED_16(t, v, ...) EXPAND(LOCAL_ALIGNED_D(16, t, v, __VA_ARGS__,,)) +# define LOCAL_ALIGNED_16(t, v, ...) E1(LOCAL_ALIGNED_D(16, t, v, __VA_ARGS__,,)) #else # define LOCAL_ALIGNED_16(t, v, ...) LOCAL_ALIGNED(16, t, v, __VA_ARGS__) #endif