mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-27 22:46:15 +01:00
Add the gnulib adaptation patch
This commit is contained in:
parent
8f27aa9965
commit
4081b0b623
460
glib/gnulib/glib-gnulib.patch
Normal file
460
glib/gnulib/glib-gnulib.patch
Normal file
@ -0,0 +1,460 @@
|
||||
These changes are mostly inherited from previous iterations
|
||||
of gnulib-printf-in-glib.
|
||||
|
||||
Here are explanations for some of them:
|
||||
* g-gnulib.h is a minimal replacement for gnulib config.h
|
||||
* gnulib_math.h is a processed copy of gnulib math.in.h
|
||||
We can't keep it named math.h, since we need to include
|
||||
both the system math.h and this header in some places.
|
||||
* gnulib_math.h needs _GL_ATTRIBUTE_CONST, put it directly
|
||||
there instead of getting it from config.h
|
||||
Also, instead of copying _GL_FUNCDECL_RPL and _GL_WARN_ON_USE
|
||||
we simply include headers where these macros are defined.
|
||||
* isnan source files get extra includes, in gnulib these
|
||||
were probably handled by makefiles and/or configure scripts
|
||||
* glib has a test result named HAVE_LONG_LONG instead of HAVE_LONG_LONG_INT,
|
||||
so make the code use that
|
||||
* One of the goals of using this gnulib implementation in glib is
|
||||
to have C99-compliant 3-digit exponent, therefore gnulib
|
||||
ifdefs that *disable* that behaviour are altered to keep it enabled.
|
||||
Another possible location for such a change is where %n use is
|
||||
being enabled or disabled. That, however, is not activated anyway,
|
||||
because this code is made not to use snprintf
|
||||
* glib has G_MAXSIZE instead of SIZE_MAX, so use that
|
||||
* The code is made to use glib alloca header
|
||||
--- glib-82c3e92/glib/gnulib/asnprintf.c 2019-02-09 09:44:55.013866300 +0000
|
||||
+++ glib-82c3e92/glib/gnulib/asnprintf.c 2019-02-09 10:08:46.444859600 +0000
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
+#include "g-gnulib.h"
|
||||
+
|
||||
/* Specification. */
|
||||
#include "vasnprintf.h"
|
||||
|
||||
--- glib-82c3e92/glib/gnulib/isnand.c 2019-02-09 09:44:56.075691800 +0000
|
||||
+++ glib-82c3e92/glib/gnulib/isnand.c 2019-02-09 10:09:35.443191100 +0000
|
||||
@@ -16,4 +16,7 @@
|
||||
|
||||
/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
|
||||
|
||||
+#include <config.h>
|
||||
+#include "gnulib_math.h"
|
||||
+#include "isnand-nolibm.h"
|
||||
#include "isnan.c"
|
||||
--- glib-82c3e92/glib/gnulib/isnand-nolibm.h 2019-02-09 09:44:55.973651800 +0000
|
||||
+++ glib-82c3e92/glib/gnulib/isnand-nolibm.h 2019-02-09 10:09:17.089604000 +0000
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
#if HAVE_ISNAND_IN_LIBC
|
||||
/* Get declaration of isnan macro. */
|
||||
-# include <math.h>
|
||||
+# include <gnulib_math.h>
|
||||
# if __GNUC__ >= 4
|
||||
/* GCC 4.0 and newer provides three built-ins for isnan. */
|
||||
# undef isnand
|
||||
--- glib-82c3e92/glib/gnulib/isnanl.c 2019-02-09 09:44:56.285650400 +0000
|
||||
+++ glib-82c3e92/glib/gnulib/isnanl.c 2019-02-09 10:10:00.060305200 +0000
|
||||
@@ -17,4 +17,7 @@
|
||||
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
|
||||
|
||||
#define USE_LONG_DOUBLE
|
||||
+#include <config.h>
|
||||
+#include "gnulib_math.h"
|
||||
+#include "isnanl-nolibm.h"
|
||||
#include "isnan.c"
|
||||
--- glib-82c3e92/glib/gnulib/isnanl-nolibm.h 2019-02-09 09:44:56.181628200 +0000
|
||||
+++ glib-82c3e92/glib/gnulib/isnanl-nolibm.h 2019-02-09 10:09:45.731187400 +0000
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
#if HAVE_ISNANL_IN_LIBC
|
||||
/* Get declaration of isnan macro or (older) isnanl function. */
|
||||
-# include <math.h>
|
||||
+# include <gnulib_math.h>
|
||||
# if __GNUC__ >= 4
|
||||
/* GCC 4.0 and newer provides three built-ins for isnan. */
|
||||
# undef isnanl
|
||||
--- glib-82c3e92/glib/gnulib/printf-args.c 2019-02-09 09:44:57.147081400 +0000
|
||||
+++ glib-82c3e92/glib/gnulib/printf-args.c 2019-02-09 10:10:45.869597700 +0000
|
||||
@@ -24,6 +24,8 @@
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
+#include "g-gnulib.h"
|
||||
+
|
||||
/* Specification. */
|
||||
#ifndef PRINTF_FETCHARGS
|
||||
# include "printf-args.h"
|
||||
@@ -65,7 +67,7 @@
|
||||
case TYPE_ULONGINT:
|
||||
ap->a.a_ulongint = va_arg (args, unsigned long int);
|
||||
break;
|
||||
-#if HAVE_LONG_LONG_INT
|
||||
+#if HAVE_LONG_LONG
|
||||
case TYPE_LONGLONGINT:
|
||||
ap->a.a_longlongint = va_arg (args, long long int);
|
||||
break;
|
||||
@@ -135,7 +137,7 @@
|
||||
case TYPE_COUNT_LONGINT_POINTER:
|
||||
ap->a.a_count_longint_pointer = va_arg (args, long int *);
|
||||
break;
|
||||
-#if HAVE_LONG_LONG_INT
|
||||
+#if HAVE_LONG_LONG
|
||||
case TYPE_COUNT_LONGLONGINT_POINTER:
|
||||
ap->a.a_count_longlongint_pointer = va_arg (args, long long int *);
|
||||
break;
|
||||
--- glib-82c3e92/glib/gnulib/printf-args.h 2019-02-09 09:44:57.245167700 +0000
|
||||
+++ glib-82c3e92/glib/gnulib/printf-args.h 2019-02-09 10:10:55.543592500 +0000
|
||||
@@ -57,7 +57,7 @@
|
||||
TYPE_UINT,
|
||||
TYPE_LONGINT,
|
||||
TYPE_ULONGINT,
|
||||
-#if HAVE_LONG_LONG_INT
|
||||
+#if HAVE_LONG_LONG
|
||||
TYPE_LONGLONGINT,
|
||||
TYPE_ULONGLONGINT,
|
||||
#endif
|
||||
@@ -76,7 +76,7 @@
|
||||
TYPE_COUNT_SHORT_POINTER,
|
||||
TYPE_COUNT_INT_POINTER,
|
||||
TYPE_COUNT_LONGINT_POINTER
|
||||
-#if HAVE_LONG_LONG_INT
|
||||
+#if HAVE_LONG_LONG
|
||||
, TYPE_COUNT_LONGLONGINT_POINTER
|
||||
#endif
|
||||
#if ENABLE_UNISTDIO
|
||||
@@ -101,7 +101,7 @@
|
||||
unsigned int a_uint;
|
||||
long int a_longint;
|
||||
unsigned long int a_ulongint;
|
||||
-#if HAVE_LONG_LONG_INT
|
||||
+#if HAVE_LONG_LONG
|
||||
long long int a_longlongint;
|
||||
unsigned long long int a_ulonglongint;
|
||||
#endif
|
||||
@@ -121,7 +121,7 @@
|
||||
short * a_count_short_pointer;
|
||||
int * a_count_int_pointer;
|
||||
long int * a_count_longint_pointer;
|
||||
-#if HAVE_LONG_LONG_INT
|
||||
+#if HAVE_LONG_LONG
|
||||
long long int * a_count_longlongint_pointer;
|
||||
#endif
|
||||
#if ENABLE_UNISTDIO
|
||||
--- glib-82c3e92/glib/gnulib/printf-frexp.c 2019-02-09 09:44:57.355099800 +0000
|
||||
+++ glib-82c3e92/glib/gnulib/printf-frexp.c 2019-02-09 10:11:15.476905600 +0000
|
||||
@@ -26,7 +26,7 @@
|
||||
#endif
|
||||
|
||||
#include <float.h>
|
||||
-#include <math.h>
|
||||
+#include <gnulib_math.h>
|
||||
#ifdef USE_LONG_DOUBLE
|
||||
# include "fpucw.h"
|
||||
#endif
|
||||
--- glib-82c3e92/glib/gnulib/printf-parse.c 2019-02-09 09:44:57.790835100 +0000
|
||||
+++ glib-82c3e92/glib/gnulib/printf-parse.c 2019-02-09 10:11:32.783744500 +0000
|
||||
@@ -31,6 +31,8 @@
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
+#include "g-gnulib.h"
|
||||
+
|
||||
/* Specification. */
|
||||
#ifndef PRINTF_PARSE
|
||||
# include "printf-parse.h"
|
||||
@@ -447,7 +449,7 @@
|
||||
switch (c)
|
||||
{
|
||||
case 'd': case 'i':
|
||||
-#if HAVE_LONG_LONG_INT
|
||||
+#if HAVE_LONG_LONG
|
||||
/* If 'long long' exists and is larger than 'long': */
|
||||
if (flags >= 16 || (flags & 4))
|
||||
type = TYPE_LONGLONGINT;
|
||||
@@ -465,7 +467,7 @@
|
||||
type = TYPE_INT;
|
||||
break;
|
||||
case 'o': case 'u': case 'x': case 'X':
|
||||
-#if HAVE_LONG_LONG_INT
|
||||
+#if HAVE_LONG_LONG
|
||||
/* If 'long long' exists and is larger than 'long': */
|
||||
if (flags >= 16 || (flags & 4))
|
||||
type = TYPE_ULONGLONGINT;
|
||||
@@ -525,7 +527,7 @@
|
||||
type = TYPE_POINTER;
|
||||
break;
|
||||
case 'n':
|
||||
-#if HAVE_LONG_LONG_INT
|
||||
+#if HAVE_LONG_LONG
|
||||
/* If 'long long' exists and is larger than 'long': */
|
||||
if (flags >= 16 || (flags & 4))
|
||||
type = TYPE_COUNT_LONGLONGINT_POINTER;
|
||||
--- glib-82c3e92/glib/gnulib/vasnprintf.c 2019-02-09 09:44:58.585342000 +0000
|
||||
+++ glib-82c3e92/glib/gnulib/vasnprintf.c 2019-02-09 10:22:13.196848200 +0000
|
||||
@@ -43,19 +43,21 @@
|
||||
DCHAR_IS_UINT16_T Set to 1 if DCHAR_T is uint16_t.
|
||||
DCHAR_IS_UINT32_T Set to 1 if DCHAR_T is uint32_t. */
|
||||
|
||||
+#ifndef _WIN32
|
||||
/* Tell glibc's <stdio.h> to provide a prototype for snprintf().
|
||||
This must come before <config.h> because <config.h> may include
|
||||
<features.h>, and once <features.h> has been included, it's too late. */
|
||||
#ifndef _GNU_SOURCE
|
||||
# define _GNU_SOURCE 1
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
#ifndef VASNPRINTF
|
||||
# include <config.h>
|
||||
#endif
|
||||
-#ifndef IN_LIBINTL
|
||||
-# include <alloca.h>
|
||||
-#endif
|
||||
+#include "glib/galloca.h"
|
||||
+
|
||||
+#include "g-gnulib.h"
|
||||
|
||||
/* Specification. */
|
||||
#ifndef VASNPRINTF
|
||||
@@ -90,29 +92,29 @@
|
||||
#include "verify.h"
|
||||
|
||||
#if (NEED_PRINTF_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL
|
||||
-# include <math.h>
|
||||
+# include <gnulib_math.h>
|
||||
# include "float+.h"
|
||||
#endif
|
||||
|
||||
#if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL
|
||||
-# include <math.h>
|
||||
+# include <gnulib_math.h>
|
||||
# include "isnand-nolibm.h"
|
||||
#endif
|
||||
|
||||
#if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE) && !defined IN_LIBINTL
|
||||
-# include <math.h>
|
||||
+# include <gnulib_math.h>
|
||||
# include "isnanl-nolibm.h"
|
||||
# include "fpucw.h"
|
||||
#endif
|
||||
|
||||
#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL
|
||||
-# include <math.h>
|
||||
+# include <gnulib_math.h>
|
||||
# include "isnand-nolibm.h"
|
||||
# include "printf-frexp.h"
|
||||
#endif
|
||||
|
||||
#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL
|
||||
-# include <math.h>
|
||||
+# include <gnulib_math.h>
|
||||
# include "isnanl-nolibm.h"
|
||||
# include "printf-frexpl.h"
|
||||
# include "fpucw.h"
|
||||
@@ -1553,7 +1555,7 @@
|
||||
switch (conversion)
|
||||
{
|
||||
case 'd': case 'i': case 'u':
|
||||
-# if HAVE_LONG_LONG_INT
|
||||
+# if HAVE_LONG_LONG
|
||||
if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
|
||||
tmp_length =
|
||||
(unsigned int) (sizeof (unsigned long long) * CHAR_BIT
|
||||
@@ -1583,7 +1585,7 @@
|
||||
break;
|
||||
|
||||
case 'o':
|
||||
-# if HAVE_LONG_LONG_INT
|
||||
+# if HAVE_LONG_LONG
|
||||
if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
|
||||
tmp_length =
|
||||
(unsigned int) (sizeof (unsigned long long) * CHAR_BIT
|
||||
@@ -1611,7 +1613,7 @@
|
||||
break;
|
||||
|
||||
case 'x': case 'X':
|
||||
-# if HAVE_LONG_LONG_INT
|
||||
+# if HAVE_LONG_LONG
|
||||
if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
|
||||
tmp_length =
|
||||
(unsigned int) (sizeof (unsigned long long) * CHAR_BIT
|
||||
@@ -1939,7 +1941,7 @@
|
||||
case TYPE_COUNT_LONGINT_POINTER:
|
||||
*a.arg[dp->arg_index].a.a_count_longint_pointer = length;
|
||||
break;
|
||||
-#if HAVE_LONG_LONG_INT
|
||||
+#if HAVE_LONG_LONG
|
||||
case TYPE_COUNT_LONGLONGINT_POINTER:
|
||||
*a.arg[dp->arg_index].a.a_count_longlongint_pointer = length;
|
||||
break;
|
||||
@@ -4245,7 +4247,7 @@
|
||||
static const wchar_t decimal_format[] =
|
||||
/* Produce the same number of exponent digits
|
||||
as the native printf implementation. */
|
||||
-# if defined _WIN32 && ! defined __CYGWIN__
|
||||
+# if (defined _WIN32 && FALSE) && ! defined __CYGWIN__
|
||||
{ '%', '+', '.', '3', 'd', '\0' };
|
||||
# else
|
||||
{ '%', '+', '.', '2', 'd', '\0' };
|
||||
@@ -4259,7 +4261,7 @@
|
||||
static const char decimal_format[] =
|
||||
/* Produce the same number of exponent digits
|
||||
as the native printf implementation. */
|
||||
-# if defined _WIN32 && ! defined __CYGWIN__
|
||||
+# if (defined _WIN32 && FALSE) && ! defined __CYGWIN__
|
||||
"%+.3d";
|
||||
# else
|
||||
"%+.2d";
|
||||
@@ -4438,7 +4440,7 @@
|
||||
static const wchar_t decimal_format[] =
|
||||
/* Produce the same number of exponent digits
|
||||
as the native printf implementation. */
|
||||
-# if defined _WIN32 && ! defined __CYGWIN__
|
||||
+# if (defined _WIN32 && FALSE) && ! defined __CYGWIN__
|
||||
{ '%', '+', '.', '3', 'd', '\0' };
|
||||
# else
|
||||
{ '%', '+', '.', '2', 'd', '\0' };
|
||||
@@ -4452,7 +4454,7 @@
|
||||
static const char decimal_format[] =
|
||||
/* Produce the same number of exponent digits
|
||||
as the native printf implementation. */
|
||||
-# if defined _WIN32 && ! defined __CYGWIN__
|
||||
+# if (defined _WIN32 && FALSE) && ! defined __CYGWIN__
|
||||
"%+.3d";
|
||||
# else
|
||||
"%+.2d";
|
||||
@@ -4510,7 +4512,7 @@
|
||||
*p++ = '+';
|
||||
/* Produce the same number of exponent digits as
|
||||
the native printf implementation. */
|
||||
-# if defined _WIN32 && ! defined __CYGWIN__
|
||||
+# if (defined _WIN32 && FALSE) && ! defined __CYGWIN__
|
||||
*p++ = '0';
|
||||
# endif
|
||||
*p++ = '0';
|
||||
@@ -4835,10 +4837,10 @@
|
||||
|
||||
switch (type)
|
||||
{
|
||||
-#if HAVE_LONG_LONG_INT
|
||||
+#if HAVE_LONG_LONG
|
||||
case TYPE_LONGLONGINT:
|
||||
case TYPE_ULONGLONGINT:
|
||||
-# if defined _WIN32 && ! defined __CYGWIN__
|
||||
+# if (defined _WIN32 && FALSE) && ! defined __CYGWIN__
|
||||
*fbp++ = 'I';
|
||||
*fbp++ = '6';
|
||||
*fbp++ = '4';
|
||||
@@ -5063,7 +5065,7 @@
|
||||
SNPRINTF_BUF (arg);
|
||||
}
|
||||
break;
|
||||
-#if HAVE_LONG_LONG_INT
|
||||
+#if HAVE_LONG_LONG
|
||||
case TYPE_LONGLONGINT:
|
||||
{
|
||||
long long int arg = a.arg[dp->arg_index].a.a_longlongint;
|
||||
--- glib-82c3e92/glib/gnulib/xsize.h 2019-02-09 09:44:59.231076600 +0000
|
||||
+++ glib-82c3e92/glib/gnulib/xsize.h 2019-02-09 10:21:28.789553900 +0000
|
||||
@@ -18,10 +18,12 @@
|
||||
#ifndef _XSIZE_H
|
||||
#define _XSIZE_H
|
||||
|
||||
+#include <glib.h>
|
||||
+
|
||||
/* Get size_t. */
|
||||
#include <stddef.h>
|
||||
|
||||
-/* Get SIZE_MAX. */
|
||||
+/* Get G_MAXSIZE. */
|
||||
#include <limits.h>
|
||||
#if HAVE_STDINT_H
|
||||
# include <stdint.h>
|
||||
@@ -42,8 +44,8 @@
|
||||
returns a piece of memory that is way too small, and the program then
|
||||
crashes while attempting to fill the memory.
|
||||
To avoid this, the functions and macros in this file check for overflow.
|
||||
- The convention is that SIZE_MAX represents overflow.
|
||||
- malloc (SIZE_MAX) is not guaranteed to fail -- think of a malloc
|
||||
+ The convention is that G_MAXSIZE represents overflow.
|
||||
+ malloc (G_MAXSIZE) is not guaranteed to fail -- think of a malloc
|
||||
implementation that uses mmap --, it's recommended to use size_overflow_p()
|
||||
or size_in_bounds_p() before invoking malloc().
|
||||
The example thus becomes:
|
||||
@@ -53,7 +55,7 @@
|
||||
|
||||
/* Convert an arbitrary value >= 0 to type size_t. */
|
||||
#define xcast_size_t(N) \
|
||||
- ((N) <= SIZE_MAX ? (size_t) (N) : SIZE_MAX)
|
||||
+ ((N) <= G_MAXSIZE ? (size_t) (N) : G_MAXSIZE)
|
||||
|
||||
/* Sum of two sizes, with overflow check. */
|
||||
XSIZE_INLINE size_t
|
||||
@@ -63,7 +65,7 @@
|
||||
xsum (size_t size1, size_t size2)
|
||||
{
|
||||
size_t sum = size1 + size2;
|
||||
- return (sum >= size1 ? sum : SIZE_MAX);
|
||||
+ return (sum >= size1 ? sum : G_MAXSIZE);
|
||||
}
|
||||
|
||||
/* Sum of three sizes, with overflow check. */
|
||||
@@ -94,23 +96,23 @@
|
||||
xmax (size_t size1, size_t size2)
|
||||
{
|
||||
/* No explicit check is needed here, because for any n:
|
||||
- max (SIZE_MAX, n) == SIZE_MAX and max (n, SIZE_MAX) == SIZE_MAX. */
|
||||
+ max (G_MAXSIZE, n) == G_MAXSIZE and max (n, G_MAXSIZE) == G_MAXSIZE. */
|
||||
return (size1 >= size2 ? size1 : size2);
|
||||
}
|
||||
|
||||
/* Multiplication of a count with an element size, with overflow check.
|
||||
The count must be >= 0 and the element size must be > 0.
|
||||
This is a macro, not a function, so that it works correctly even
|
||||
- when N is of a wider type and N > SIZE_MAX. */
|
||||
+ when N is of a wider type and N > G_MAXSIZE. */
|
||||
#define xtimes(N, ELSIZE) \
|
||||
- ((N) <= SIZE_MAX / (ELSIZE) ? (size_t) (N) * (ELSIZE) : SIZE_MAX)
|
||||
+ ((N) <= G_MAXSIZE / (ELSIZE) ? (size_t) (N) * (ELSIZE) : G_MAXSIZE)
|
||||
|
||||
/* Check for overflow. */
|
||||
#define size_overflow_p(SIZE) \
|
||||
- ((SIZE) == SIZE_MAX)
|
||||
+ ((SIZE) == G_MAXSIZE)
|
||||
/* Check against overflow. */
|
||||
#define size_in_bounds_p(SIZE) \
|
||||
- ((SIZE) != SIZE_MAX)
|
||||
+ ((SIZE) != G_MAXSIZE)
|
||||
|
||||
_GL_INLINE_HEADER_END
|
||||
|
||||
--- a/glib/gnulib/gnulib_math.h.in
|
||||
+++ b/glib/gnulib/gnulib_math.h.in
|
||||
@@ -25,6 +25,13 @@
|
||||
/* The include_next requires a split double-inclusion guard. */
|
||||
#@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
|
||||
|
||||
+/* The __const__ attribute was added in gcc 2.95. */
|
||||
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
|
||||
+# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
|
||||
+#else
|
||||
+# define _GL_ATTRIBUTE_CONST /* empty */
|
||||
+#endif
|
||||
+
|
||||
#ifndef _@GUARD_PREFIX@_MATH_H
|
||||
#define _@GUARD_PREFIX@_MATH_H
|
||||
|
||||
@@ -41,9 +48,9 @@ _GL_INLINE_HEADER_BEGIN
|
||||
# define _GL_MATH_INLINE _GL_INLINE
|
||||
#endif
|
||||
|
||||
-/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
|
||||
+#include "c++defs.h"
|
||||
|
||||
-/* The definition of _GL_ARG_NONNULL is copied here. */
|
||||
+#include "arg-nonnull.h"
|
||||
|
||||
/* The definition of _GL_WARN_ON_USE is copied here. */
|
||||
|
Loading…
Reference in New Issue
Block a user