• Home
  • Raw
  • Download

Lines Matching +full:no +full:- +full:use +full:- +full:before +full:- +full:define

1 /* GLIB - Library of useful routines for C programming
2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
19 * Modified by the GLib Team and others 1997-2000. See the AUTHORS
30 #define __G_MACROS_H__
41 #define G_GNUC_CHECK_VERSION(major, minor) \
46 #define G_GNUC_CHECK_VERSION(major, minor) 0
51 * "long long" types even in the presence of '-ansi -pedantic'.
54 #define G_GNUC_EXTENSION __extension__
56 #define G_GNUC_EXTENSION
61 * we are using C++, then we can use "inline" directly. Unfortunately
67 #define G_CAN_INLINE
71 # define G_INLINE_DEFINE_NEEDED
74 # define G_INLINE_DEFINE_NEEDED
80 # define inline __inline
88 * This macro used to be used to conditionally define inline functions
89 * in a compatible way before this feature was supported in all
91 * compiler, so your GLib-using programs can safely assume that the
94 * Never use this macro anymore. Just say "static inline".
96 * Deprecated: 2.48: Use "static inline" instead
100 * define G_IMPLEMENT_INLINES to mean "don't implement this here".
103 # define G_INLINE_FUNC extern GLIB_DEPRECATED_MACRO_IN_2_48_FOR(static inline)
106 # define G_INLINE_FUNC static inline GLIB_DEPRECATED_MACRO_IN_2_48_FOR(static inline)
117 * the function. A `pure` function has no effects except its return value
121 * Place the attribute after the declaration, just before the semicolon.
123 * |[<!-- language="C" -->
127 …umentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-pure-function
134 …bute](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-functions-that-beha…
142 * returns, and moreover no pointers to valid objects occur in any storage
146 * which returns unallocated or zeroed-out memory, but not with functions which
151 * Place the attribute after the declaration, just before the semicolon.
153 * |[<!-- language="C" -->
158 …tion](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-functions-that-beha…
173 * The attribute may be placed before the declaration or definition,
174 * right before the `static` keyword.
176 * |[<!-- language="C" -->
186 …entation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-noinline-functi…
193 #define G_GNUC_PURE __attribute__((__pure__))
194 #define G_GNUC_MALLOC __attribute__((__malloc__))
195 #define G_GNUC_NO_INLINE __attribute__((noinline))
197 #define G_GNUC_PURE
198 #define G_GNUC_MALLOC
199 #define G_GNUC_NO_INLINE
210 * Place the attribute after the declaration, just before the semicolon.
212 * |[<!-- language="C" -->
217 …entation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-sentinel-functi…
222 #define G_GNUC_NULL_TERMINATED __attribute__((__sentinel__))
224 #define G_GNUC_NULL_TERMINATED
228 * We can only use __typeof__ on GCC >= 4.8, and not when compiling C++. Since
229 * __typeof__ is used in a few places in GLib, provide a pre-processor symbol
238 #define glib_typeof(t) __typeof__ (t)
244 * Within GLib itself, which use `glib_typeof` need to add the include
247 #define glib_typeof(t) typename std::remove_reference<decltype (t)>::type
248 #define glib_typeof_2_68
253 * These are not available on GCC, but since the pre-processor doesn't do
254 * operator short-circuiting, we can't use it in a statement or we'll get:
256 * error: missing binary operator before token "("
258 * So we define it to 0 to satisfy the pre-processor.
262 #define g_macro__has_attribute __has_attribute
264 #define g_macro__has_attribute(x) 0
268 #define g_macro__has_feature __has_feature
270 #define g_macro__has_feature(x) 0
274 #define g_macro__has_builtin __has_builtin
276 #define g_macro__has_builtin(x) 0
288 * Place the attribute after the function declaration, just before the
291 * |[<!-- language="C" -->
295 …ation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-alloc_005fsize-fun…
310 * Place the attribute after the function declaration, just before the
313 * |[<!-- language="C" -->
318 …ation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-alloc_005fsize-fun…
324 #define G_GNUC_ALLOC_SIZE(x) __attribute__((__alloc_size__(x)))
325 #define G_GNUC_ALLOC_SIZE2(x,y) __attribute__((__alloc_size__(x,y)))
327 #define G_GNUC_ALLOC_SIZE(x)
328 #define G_GNUC_ALLOC_SIZE2(x,y)
336 * there are no format arguments
341 * to type-check the arguments passed to the function.
343 * Place the attribute after the function declaration, just before the
347 …documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-Wformat-32…
350 * |[<!-- language="C" -->
363 * there are no format arguments
368 * to type-check the arguments passed to the function.
370 * |[<!-- language="C" -->
380 …documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-Wformat-32…
394 * |[<!-- language="C" -->
401 …documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-Wformat-32…
419 * Place the attribute after the function declaration, just before the
422 …entation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-Wformat-nonlite…
424 * |[<!-- language="C" -->
442 * Place the attribute after the declaration, just before the semicolon.
444 * |[<!-- language="C" -->
448 …entation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-noreturn-functi…
457 * parameters, and has no effects except its return value.
459 * Place the attribute after the declaration, just before the semicolon.
461 * |[<!-- language="C" -->
465 …umentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-const-functio…
468 * must not be declared `const`. Likewise, a function that calls a non-`const`
480 * For functions, place the attribute after the declaration, just before the
484 * |[<!-- language="C" -->
489 …mentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-unused-functio…
498 * `-finstrument-functions` option.
500 * Place the attribute after the declaration, just before the semicolon.
502 * |[<!-- language="C" -->
506 …ttps://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-no_005finstrument_005ffunc…
511 #define G_GNUC_PRINTF( format_idx, arg_idx ) \
513 #define G_GNUC_SCANF( format_idx, arg_idx ) \
515 #define G_GNUC_STRFTIME( format_idx ) \
518 #define G_GNUC_PRINTF( format_idx, arg_idx ) \
520 #define G_GNUC_SCANF( format_idx, arg_idx ) \
522 #define G_GNUC_STRFTIME( format_idx ) \
525 #define G_GNUC_FORMAT( arg_idx ) \
527 #define G_GNUC_NORETURN \
529 #define G_GNUC_CONST \
531 #define G_GNUC_UNUSED \
533 #define G_GNUC_NO_INSTRUMENT \
536 #define G_GNUC_PRINTF( format_idx, arg_idx )
537 #define G_GNUC_SCANF( format_idx, arg_idx )
538 #define G_GNUC_STRFTIME( format_idx )
539 #define G_GNUC_FORMAT( arg_idx )
542 * and not at the end, so we can't use it without breaking API.
544 #define G_GNUC_NORETURN
545 #define G_GNUC_CONST
546 #define G_GNUC_UNUSED
547 #define G_GNUC_NO_INSTRUMENT
555 * statements. To enable this feature, use `-Wimplicit-fallthrough` during
558 * Put the attribute right before the case statement you want to fall through
561 * |[<!-- language="C" -->
574 …entation](https://gcc.gnu.org/onlinedocs/gcc/Statement-Attributes.html#index-fallthrough-statement
579 #define G_GNUC_FALLTHROUGH __attribute__((fallthrough))
581 #define G_GNUC_FALLTHROUGH __attribute__((fallthrough))
583 #define G_GNUC_FALLTHROUGH
591 * When called with the `-Wdeprecated-declarations` option,
594 * Place the attribute after the declaration, just before the semicolon.
596 * |[<!-- language="C" -->
600 …ntation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-deprecated-funct…
605 #define G_GNUC_DEPRECATED __attribute__((__deprecated__))
607 #define G_GNUC_DEPRECATED
616 * deprecated symbol if the version of gcc in use is new enough to support
619 * Place the attribute after the declaration, just before the semicolon.
621 * |[<!-- language="C" -->
625 …ntation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-deprecated-funct…
634 #define G_GNUC_DEPRECATED_FOR(f) \
635 __attribute__((deprecated("Use " #f " instead")))
637 #define G_GNUC_DEPRECATED_FOR(f) G_GNUC_DEPRECATED
641 #define G_GNUC_BEGIN_IGNORE_DEPRECATIONS \
644 #define G_GNUC_END_IGNORE_DEPRECATIONS \
647 #define G_GNUC_BEGIN_IGNORE_DEPRECATIONS \
649 _Pragma ("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
650 #define G_GNUC_END_IGNORE_DEPRECATIONS \
653 #define G_GNUC_BEGIN_IGNORE_DEPRECATIONS \
656 #define G_GNUC_END_IGNORE_DEPRECATIONS \
659 #define G_GNUC_BEGIN_IGNORE_DEPRECATIONS \
661 _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"")
662 #define G_GNUC_END_IGNORE_DEPRECATIONS \
665 #define G_GNUC_BEGIN_IGNORE_DEPRECATIONS
666 #define G_GNUC_END_IGNORE_DEPRECATIONS
673 * Types with this attribute will not be subjected to type-based alias
676 …umentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Type-Attributes.html#index-may_005falias-typ…
681 #define G_GNUC_MAY_ALIAS __attribute__((may_alias))
683 #define G_GNUC_MAY_ALIAS
693 * Place the attribute after the declaration, just before the semicolon.
695 * |[<!-- language="C" -->
700 …(https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-warn_005funused_005fresu…
705 #define G_GNUC_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
707 #define G_GNUC_WARN_UNUSED_RESULT
714 * version 2.x. Don't use it.
716 * Deprecated: 2.16: Use G_STRFUNC() instead
723 * on gcc version 2.x. Don't use it.
725 * Deprecated: 2.16: Use G_STRFUNC() instead
730 * usage not-recommended since gcc-3.0
736 #define G_GNUC_FUNCTION __FUNCTION__ GLIB_DEPRECATED_MACRO_IN_2_26_FOR(G_STRFUNC)
737 #define G_GNUC_PRETTY_FUNCTION __PRETTY_FUNCTION__ GLIB_DEPRECATED_MACRO_IN_2_26_FOR(G_STRFUNC)
739 #define G_GNUC_FUNCTION "" GLIB_DEPRECATED_MACRO_IN_2_26_FOR(G_STRFUNC)
740 #define G_GNUC_PRETTY_FUNCTION "" GLIB_DEPRECATED_MACRO_IN_2_26_FOR(G_STRFUNC)
744 #define G_ANALYZER_ANALYZING 1
745 #define G_ANALYZER_NORETURN __attribute__((analyzer_noreturn))
747 #define G_ANALYZER_ANALYZING 0
748 #define G_ANALYZER_NORETURN
751 #define G_STRINGIFY(macro_or_string) G_STRINGIFY_ARG (macro_or_string)
752 #define G_STRINGIFY_ARG(contents) #contents
755 #define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
756 #define G_PASTE(identifier1,identifier2) G_PASTE_ARGS (identifier1, identifier2)
758 #define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
762 #define G_STATIC_ASSERT(expr) static_assert (expr, "Expression evaluates to false")
765 #define G_STATIC_ASSERT(expr) typedef char G_PASTE (_GStaticAssertCompileTimeAssertion_, __COUNTER_…
767 #define G_STATIC_ASSERT(expr) typedef char G_PASTE (_GStaticAssertCompileTimeAssertion_, __LINE__)[…
770 #define G_STATIC_ASSERT_EXPR(expr) ((void) sizeof (char[(expr) ? 1 : -1]))
775 #define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__) ":" __PRETTY_FUNCTION__ "()"
777 #define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
780 /* Provide a string identifying the current function, non-concatenatable */
782 #define G_STRFUNC ((const char*) (__PRETTY_FUNCTION__))
784 #define G_STRFUNC ((const char*) (__func__))
786 #define G_STRFUNC ((const char*) (__FUNCTION__))
788 #define G_STRFUNC ((const char*) ("???"))
793 #define G_BEGIN_DECLS extern "C" {
794 #define G_END_DECLS }
796 #define G_BEGIN_DECLS
797 #define G_END_DECLS
807 # define NULL (0L)
809 # define NULL ((void*) 0)
814 #define FALSE (0)
818 #define TRUE (!FALSE)
822 #define MAX(a, b) (((a) > (b)) ? (a) : (b))
825 #define MIN(a, b) (((a) < (b)) ? (a) : (b))
828 #define ABS(a) (((a) < 0) ? -(a) : (a))
831 #define CLAMP(x, low, high) (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x)))
833 #define G_APPROX_VALUE(a, b, epsilon) \
834 (((a) > (b) ? (a) - (b) : (b) - (a)) < (epsilon))
840 #define G_N_ELEMENTS(arr) (sizeof (arr) / sizeof ((arr)[0]))
844 #define GPOINTER_TO_SIZE(p) ((gsize) (p))
845 #define GSIZE_TO_POINTER(s) ((gpointer) (gsize) (s))
852 #define G_STRUCT_OFFSET(struct_type, member) \
855 #define G_STRUCT_OFFSET(struct_type, member) \
856 ((glong) ((guint8*) &((struct_type*) 0)->member))
859 #define G_STRUCT_MEMBER_P(struct_p, struct_offset) \
861 #define G_STRUCT_MEMBER(member_type, struct_p, struct_offset) \
868 * This intentionally does not use compiler extensions like GCC's '({...})' to
871 * so we use __pragma to avoid the warning since the use here is intentional.
874 #define G_STMT_START do
876 #define G_STMT_END \
882 #define G_STMT_END while (0)
888 * Note we cannot use the gcc __alignof__ operator here, as that returns the
895 * @type: a type-name
900 * to be aligned at a 4-byte boundary, so `G_ALIGNOF (int)` is 4 on most platforms.
910 #define G_ALIGNOF(type) _Alignof (type)
912 #define G_ALIGNOF(type) (G_STRUCT_OFFSET (struct { char a; type b; }, b))
931 #define G_CONST_RETURN GLIB_DEPRECATED_MACRO_IN_2_30_FOR(const)
933 #define G_CONST_RETURN const GLIB_DEPRECATED_MACRO_IN_2_30_FOR(const)
946 * Place the attribute before the function declaration as follows:
948 * |[<!-- language="C" -->
957 * code which includes glib.h, even if the third party code doesn’t use the new
960 /* For compatibility with G_NORETURN_FUNCPTR on clang, use
962 # define G_NORETURN __attribute__ ((__noreturn__))
964 /* Use MSVC specific syntax. */
965 # define G_NORETURN __declspec (noreturn)
966 /* Use ISO C++11 syntax when the compiler supports it. */
968 # define G_NORETURN [[noreturn]]
969 /* Use ISO C11 syntax when the compiler supports it. */
971 # define G_NORETURN _Noreturn
973 # define G_NORETURN /* empty */
983 * Place the attribute before the function declaration as follows:
985 * |[<!-- language="C" -->
989 * Note that if the function is not a function pointer, you can simply use
992 * |[<!-- language="C" -->
999 # define G_NORETURN_FUNCPTR __attribute__ ((__noreturn__)) \
1002 # define G_NORETURN_FUNCPTR /* empty */ \
1009 * can use this information for optimizations.
1015 #define _G_BOOLEAN_EXPR(expr) \
1024 #define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
1025 #define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
1027 #define G_LIKELY(expr) (expr)
1028 #define G_UNLIKELY(expr) (expr)
1032 #define G_DEPRECATED __attribute__((__deprecated__))
1034 #define G_DEPRECATED __declspec(deprecated)
1036 #define G_DEPRECATED
1040 #define G_DEPRECATED_FOR(f) __attribute__((__deprecated__("Use '" #f "' instead")))
1042 #define G_DEPRECATED_FOR(f) __declspec(deprecated("is deprecated. Use '" #f "' instead"))
1044 #define G_DEPRECATED_FOR(f) G_DEPRECATED
1048 #define G_UNAVAILABLE(maj,min) __attribute__((deprecated("Not available before " #maj "." #min)))
1050 #define G_UNAVAILABLE(maj,min) __declspec(deprecated("is not available before " #maj "." #min))
1052 #define G_UNAVAILABLE(maj,min) G_DEPRECATED
1056 #define _GLIB_EXTERN extern
1061 * do *not* use them in other projects. Instead, use G_DEPRECATED
1062 * or define your own wrappers around it.
1066 #define GLIB_DEPRECATED _GLIB_EXTERN
1067 #define GLIB_DEPRECATED_FOR(f) _GLIB_EXTERN
1068 #define GLIB_UNAVAILABLE(maj,min) _GLIB_EXTERN
1069 #define GLIB_UNAVAILABLE_STATIC_INLINE(maj,min)
1071 #define GLIB_DEPRECATED G_DEPRECATED _GLIB_EXTERN
1072 #define GLIB_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) _GLIB_EXTERN
1073 #define GLIB_UNAVAILABLE(maj,min) G_UNAVAILABLE(maj,min) _GLIB_EXTERN
1074 #define GLIB_UNAVAILABLE_STATIC_INLINE(maj,min) G_UNAVAILABLE(maj,min)
1080 #define _GLIB_GNUC_DO_PRAGMA(x) _Pragma(G_STRINGIFY (x))
1081 #define GLIB_DEPRECATED_MACRO _GLIB_GNUC_DO_PRAGMA(GCC warning "Deprecated pre-processor symbol")
1082 #define GLIB_DEPRECATED_MACRO_FOR(f) _GLIB_GNUC_DO_PRAGMA(GCC warning "Deprecated pre-processor sym…
1083 #define GLIB_UNAVAILABLE_MACRO(maj,min) _GLIB_GNUC_DO_PRAGMA(GCC warning "Not available before " #m…
1085 #define GLIB_DEPRECATED_MACRO
1086 #define GLIB_DEPRECATED_MACRO_FOR(f)
1087 #define GLIB_UNAVAILABLE_MACRO(maj,min)
1093 #define GLIB_DEPRECATED_ENUMERATOR G_DEPRECATED
1094 #define GLIB_DEPRECATED_ENUMERATOR_FOR(f) G_DEPRECATED_FOR(f)
1095 #define GLIB_UNAVAILABLE_ENUMERATOR(maj,min) G_UNAVAILABLE(maj,min)
1097 #define GLIB_DEPRECATED_ENUMERATOR
1098 #define GLIB_DEPRECATED_ENUMERATOR_FOR(f)
1099 #define GLIB_UNAVAILABLE_ENUMERATOR(maj,min)
1105 #define GLIB_DEPRECATED_TYPE G_DEPRECATED
1106 #define GLIB_DEPRECATED_TYPE_FOR(f) G_DEPRECATED_FOR(f)
1107 #define GLIB_UNAVAILABLE_TYPE(maj,min) G_UNAVAILABLE(maj,min)
1109 #define GLIB_DEPRECATED_TYPE
1110 #define GLIB_DEPRECATED_TYPE_FOR(f)
1111 #define GLIB_UNAVAILABLE_TYPE(maj,min)
1119 #define _GLIB_AUTOPTR_FUNC_NAME(TypeName) glib_autoptr_cleanup_##TypeName
1120 #define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
1121 #define _GLIB_AUTOPTR_TYPENAME(TypeName) TypeName##_autoptr
1122 #define _GLIB_AUTOPTR_LIST_FUNC_NAME(TypeName) glib_listautoptr_cleanup_##TypeName
1123 #define _GLIB_AUTOPTR_LIST_TYPENAME(TypeName) TypeName##_listautoptr
1124 #define _GLIB_AUTOPTR_SLIST_FUNC_NAME(TypeName) glib_slistautoptr_cleanup_##TypeName
1125 #define _GLIB_AUTOPTR_SLIST_TYPENAME(TypeName) TypeName##_slistautoptr
1126 #define _GLIB_AUTOPTR_QUEUE_FUNC_NAME(TypeName) glib_queueautoptr_cleanup_##TypeName
1127 #define _GLIB_AUTOPTR_QUEUE_TYPENAME(TypeName) TypeName##_queueautoptr
1128 #define _GLIB_AUTO_FUNC_NAME(TypeName) glib_auto_cleanup_##TypeName
1129 #define _GLIB_CLEANUP(func) __attribute__((cleanup(func)))
1130 #define _GLIB_DEFINE_AUTOPTR_CLEANUP_FUNCS(TypeName, ParentName, cleanup) \
1147 #define _GLIB_DEFINE_AUTOPTR_CHAINUP(ModuleObjName, ParentName) \
1152 #define G_DEFINE_AUTOPTR_CLEANUP_FUNC(TypeName, func) \
1154 #define G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(TypeName, func) \
1158 #define G_DEFINE_AUTO_CLEANUP_FREE_FUNC(TypeName, func, none) \
1162 #define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME…
1163 #define g_autolist(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_LIST_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_LI…
1164 #define g_autoslist(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_SLIST_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_…
1165 #define g_autoqueue(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_QUEUE_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_…
1166 #define g_auto(TypeName) _GLIB_CLEANUP(_GLIB_AUTO_FUNC_NAME(TypeName)) TypeName
1167 #define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
1171 #define _GLIB_DEFINE_AUTOPTR_CHAINUP(ModuleObjName, ParentName)
1174 #define G_DEFINE_AUTOPTR_CLEANUP_FUNC(TypeName, func)
1175 #define G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(TypeName, func)
1176 #define G_DEFINE_AUTO_CLEANUP_FREE_FUNC(TypeName, func, none)
1178 /* no declaration of g_auto() or g_autoptr() here */
1183 #define _GLIB_DEFINE_AUTOPTR_CHAINUP(ModuleObjName, ParentName)
1185 #define G_DEFINE_AUTOPTR_CLEANUP_FUNC(TypeName, func)
1186 #define G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(TypeName, func)
1187 #define G_DEFINE_AUTO_CLEANUP_FREE_FUNC(TypeName, func, none)
1203 #define G_SIZEOF_MEMBER(struct_type, member) \
1205 sizeof (((struct_type *) 0)->member)