Imported Upstream version 1.59.5 upstream/1.59.5
authorDongHun Kwak <dh0128.kwak@samsung.com>
Fri, 18 Sep 2020 05:38:57 +0000 (14:38 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Fri, 18 Sep 2020 05:38:57 +0000 (14:38 +0900)
23 files changed:
Makefile-gir.am
Makefile.in
NEWS
build-aux/ltmain.sh
configure
configure.ac
docs/reference/html/gi-Version-Information.html
docs/reference/html/index.html
docs/reference/version.xml
gir/cairo-1.0.gir.in
gir/gio-2.0.c
gir/glib-2.0.c
gir/gobject-2.0.c
gir/meson.build
girepository/giversion.h
giscanner/_version.py
giscanner/ccompiler.py
giscanner/scannerparser.c
giscanner/scannerparser.h
gobject-introspection-1.0.pc
gobject-introspection-no-export-1.0.pc
m4/libtool.m4
meson.build

index 36c8dc6..b59b0a6 100644 (file)
@@ -117,7 +117,7 @@ GObject_2_0_gir_CFLAGS = \
             -I$(GOBJECT_INCLUDEDIR) \
             -I$(GOBJECT_LIBDIR)/glib-2.0/include
 GObject_2_0_gir_FILES = \
-       $(filter-out $(GOBJECT_INCLUDEDIR)/gobject/glib-types.h $(GOBJECT_INCLUDEDIR)/gobject/gvaluecollector.h, \
+       $(filter-out $(GOBJECT_INCLUDEDIR)/gobject/glib-types.h $(GOBJECT_INCLUDEDIR)/gobject/gvaluecollector.h (GOBJECT_INCLUDEDIR)/gobject/glib-enumtypes.h, \
                $(wildcard $(GOBJECT_INCLUDEDIR)/gobject/*.h)) \
        gir/gobject-2.0.c
 
index 32693b5..8832bbb 100644 (file)
@@ -1484,7 +1484,7 @@ GObject_2_0_gir_CFLAGS = \
             -I$(GOBJECT_LIBDIR)/glib-2.0/include
 
 GObject_2_0_gir_FILES = \
-       $(filter-out $(GOBJECT_INCLUDEDIR)/gobject/glib-types.h $(GOBJECT_INCLUDEDIR)/gobject/gvaluecollector.h, \
+       $(filter-out $(GOBJECT_INCLUDEDIR)/gobject/glib-types.h $(GOBJECT_INCLUDEDIR)/gobject/gvaluecollector.h (GOBJECT_INCLUDEDIR)/gobject/glib-enumtypes.h, \
                $(wildcard $(GOBJECT_INCLUDEDIR)/gobject/*.h)) \
        gir/gobject-2.0.c
 
diff --git a/NEWS b/NEWS
index ef4c6e7..d949d22 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,11 @@
+1.59.5 - 2019-03-04
+-------------------
+
+* gir: Include C header in cairo gir file :mr:`138` (:user:`Tomasz Miąsko <tmiasko>`)
+* ccompiler: restore customize_compiler() setup for macOS. :issue:`268`
+* gir: skip glib-enumtypes.h for GObject-2.0 :mr:`140`
+
+
 1.59.4 - 2019-02-04
 -------------------
 
index c12c197..f402c9c 100644 (file)
@@ -31,7 +31,7 @@
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION="2.4.6 Debian-2.4.6-9"
+VERSION="2.4.6 Debian-2.4.6-10"
 package_revision=2.4.6
 
 
@@ -2141,7 +2141,7 @@ include the following information:
        compiler:       $LTCC
        compiler flags: $LTCFLAGS
        linker:         $LD (gnu? $with_gnu_ld)
-       version:        $progname $scriptversion Debian-2.4.6-9
+       version:        $progname $scriptversion Debian-2.4.6-10
        automake:       `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
        autoconf:       `($AUTOCONF --version) 2>/dev/null |$SED 1q`
 
index ec7c3d8..7c34c7f 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gobject-introspection 1.59.4.
+# Generated by GNU Autoconf 2.69 for gobject-introspection 1.59.5.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=gobject-introspection>.
 #
@@ -591,8 +591,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='gobject-introspection'
 PACKAGE_TARNAME='gobject-introspection'
-PACKAGE_VERSION='1.59.4'
-PACKAGE_STRING='gobject-introspection 1.59.4'
+PACKAGE_VERSION='1.59.5'
+PACKAGE_STRING='gobject-introspection 1.59.5'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=gobject-introspection'
 PACKAGE_URL=''
 
@@ -1462,7 +1462,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures gobject-introspection 1.59.4 to adapt to many kinds of systems.
+\`configure' configures gobject-introspection 1.59.5 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1534,7 +1534,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of gobject-introspection 1.59.4:";;
+     short | recursive ) echo "Configuration of gobject-introspection 1.59.5:";;
    esac
   cat <<\_ACEOF
 
@@ -1701,7 +1701,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-gobject-introspection configure 1.59.4
+gobject-introspection configure 1.59.5
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2253,7 +2253,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by gobject-introspection $as_me 1.59.4, which was
+It was created by gobject-introspection $as_me 1.59.5, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3121,7 +3121,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gobject-introspection'
- VERSION='1.59.4'
+ VERSION='1.59.5'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3395,12 +3395,12 @@ AM_BACKSLASH='\'
 
 
 # Used in docs/reference/version.xml
-GI_VERSION=1.59.4
+GI_VERSION=1.59.5
 
 
 GI_MAJOR_VERSION=1
 GI_MINOR_VERSION=59
-GI_MICRO_VERSION=4
+GI_MICRO_VERSION=5
 
 
 
@@ -8991,6 +8991,12 @@ lt_prog_compiler_static=
        lt_prog_compiler_pic='-KPIC'
        lt_prog_compiler_static='-static'
         ;;
+      # flang / f18. f95 an alias for gfortran or flang on Debian
+      flang* | f18* | f95*)
+       lt_prog_compiler_wl='-Wl,'
+       lt_prog_compiler_pic='-fPIC'
+       lt_prog_compiler_static='-static'
+        ;;
       # icc used to be incompatible with GCC.
       # ICC 10 doesn't accept -KPIC any more.
       icc* | ifort*)
@@ -17995,7 +18001,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by gobject-introspection $as_me 1.59.4, which was
+This file was extended by gobject-introspection $as_me 1.59.5, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -18061,7 +18067,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-gobject-introspection config.status 1.59.4
+gobject-introspection config.status 1.59.5
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
index e24e4f0..dbbc6ae 100644 (file)
@@ -4,7 +4,7 @@
 dnl the gi version number
 m4_define(gi_major_version, 1)
 m4_define(gi_minor_version, 59)
-m4_define(gi_micro_version, 4)
+m4_define(gi_micro_version, 5)
 m4_define(gi_version, gi_major_version.gi_minor_version.gi_micro_version)
 
 AC_PREREQ([2.63])
index 4aee6ff..807a438 100644 (file)
@@ -199,7 +199,7 @@ gi_get_micro_version (<em class="parameter"><code><span class="type">void</span>
 <hr>
 <div class="refsect2">
 <a name="GI-MICRO-VERSION:CAPS"></a><h3>GI_MICRO_VERSION</h3>
-<pre class="programlisting">#define GI_MICRO_VERSION 4
+<pre class="programlisting">#define GI_MICRO_VERSION 5
 </pre>
 <p>The micro version number of the girepository library.</p>
 <p class="since">Since: <a class="link" href="api-index-1-60.html#api-index-1.60">1.60</a></p>
index 74ddcc3..cd1d544 100644 (file)
@@ -16,7 +16,7 @@
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">libgirepository API Reference</p></th></tr></table></div>
 <div>
 <p class="releaseinfo">
-      This document is for libgirepository version 1.59.4
+      This document is for libgirepository version 1.59.5
 .
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="https://developer.gnome.org/gi/unstable/" target="_top">https://developer.gnome.org/gi/unstable/</a>.
index ec45e51..e4c9fb3 100644 (file)
@@ -4,6 +4,7 @@
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
   <package name="@CAIRO_GIR_PACKAGE@"/>
+  <c:include name="cairo-gobject.h"/>
   <namespace name="cairo" version="1.0"
             shared-library="@CAIRO_SHARED_LIBRARY@"
             c:identifier-prefixes="cairo"
index 05f6e1d..f3f060c 100644 (file)
  * When debugging a program or testing a change to an installed version, it is often useful to be able to
  * replace resources in the program or library, without recompiling, for debugging or quick hacking and testing
  * purposes. Since GLib 2.50, it is possible to use the `G_RESOURCE_OVERLAYS` environment variable to selectively overlay
- * resources with replacements from the filesystem.  It is a colon-separated list of substitutions to perform
+ * resources with replacements from the filesystem.  It is a %G_SEARCHPATH_SEPARATOR-separated list of substitutions to perform
  * during resource lookups.
  *
  * A substitution has the form
index b86ab02..8f46e72 100644 (file)
 
 
 /**
- * G_MININT16:
- *
- * The minimum value which can be held in a #gint16.
- *
- * Since: 2.4
- */
-
-
-/**
- * G_MININT32:
- *
- * The minimum value which can be held in a #gint32.
- *
- * Since: 2.4
- */
-
-
-/**
- * G_MININT64:
- *
- * The minimum value which can be held in a #gint64.
- */
-
-
-/**
- * G_MININT8:
- *
- * The minimum value which can be held in a #gint8.
- *
- * Since: 2.4
- */
-
-
-/**
  * G_MINLONG:
  *
  * The minimum value which can be held in a #glong.
  *   gint fd;
  *   int saved_errno;
  *
+ *   g_return_val_if_fail (error == NULL || *error == NULL, -1);
+ *
  *   fd = open ("file.txt", O_RDONLY);
  *   saved_errno = errno;
  *
 
 /**
  * g_base64_decode:
- * @text: zero-terminated string with base64 text to decode
+ * @text: (not nullable): zero-terminated string with base64 text to decode
  * @out_len: (out): The length of the decoded data is written here
  *
  * Decode a sequence of Base-64 encoded text into binary data.  Note
 
 /**
  * g_base64_encode:
- * @data: (array length=len) (element-type guint8): the binary data to encode
+ * @data: (array length=len) (element-type guint8) (nullable): the binary data to encode
  * @len: the length of @data
  *
  * Encode a sequence of binary data into its Base-64 stringified
  * a command line, and the C runtime startup code does a corresponding
  * reconstruction of an argument vector from the command line, to be
  * passed to main(). Complications arise when you have argument vector
- * elements that contain spaces of double quotes. The spawn*() functions
+ * elements that contain spaces or double quotes. The `spawn*()` functions
  * don't do any quoting or escaping, but on the other hand the startup
  * code does do unquoting and unescaping in order to enable receiving
  * arguments with embedded spaces or double quotes. To work around this
  * g_string_append_len:
  * @string: a #GString
  * @val: bytes to append
- * @len: number of bytes of @val to use
+ * @len: number of bytes of @val to use, or -1 for all of @val
+ *
+ * Appends @len bytes of @val to @string.
  *
- * Appends @len bytes of @val to @string. Because @len is
- * provided, @val may contain embedded nuls and need not
- * be nul-terminated.
+ * If @len is positive, @val may contain embedded nuls and need
+ * not be nul-terminated. It is the caller's responsibility to
+ * ensure that @val has at least @len addressable bytes.
  *
- * Since this function does not stop at nul bytes, it is
- * the caller's responsibility to ensure that @val has at
- * least @len addressable bytes.
+ * If @len is negative, @val must be nul-terminated and @len
+ * is considered to request the entire string length. This
+ * makes g_string_append_len() equivalent to g_string_append().
  *
  * Returns: (transfer none): @string
  */
  * @pos: position in @string where insertion should
  *       happen, or -1 for at the end
  * @val: bytes to insert
- * @len: number of bytes of @val to insert
+ * @len: number of bytes of @val to insert, or -1 for all of @val
  *
  * Inserts @len bytes of @val into @string at @pos.
- * Because @len is provided, @val may contain embedded
- * nuls and need not be nul-terminated. If @pos is -1,
- * bytes are inserted at the end of the string.
  *
- * Since this function does not stop at nul bytes, it is
- * the caller's responsibility to ensure that @val has at
- * least @len addressable bytes.
+ * If @len is positive, @val may contain embedded nuls and need
+ * not be nul-terminated. It is the caller's responsibility to
+ * ensure that @val has at least @len addressable bytes.
+ *
+ * If @len is negative, @val must be nul-terminated and @len
+ * is considered to request the entire string length.
+ *
+ * If @pos is -1, bytes are inserted at the end of the string.
  *
  * Returns: (transfer none): @string
  */
  * g_string_prepend_len:
  * @string: a #GString
  * @val: bytes to prepend
- * @len: number of bytes in @val to prepend
+ * @len: number of bytes in @val to prepend, or -1 for all of @val
  *
  * Prepends @len bytes of @val to @string.
- * Because @len is provided, @val may contain
- * embedded nuls and need not be nul-terminated.
  *
- * Since this function does not stop at nul bytes,
- * it is the caller's responsibility to ensure that
- * @val has at least @len addressable bytes.
+ * If @len is positive, @val may contain embedded nuls and need
+ * not be nul-terminated. It is the caller's responsibility to
+ * ensure that @val has at least @len addressable bytes.
+ *
+ * If @len is negative, @val must be nul-terminated and @len
+ * is considered to request the entire string length. This
+ * makes g_string_prepend_len() equivalent to g_string_prepend().
  *
  * Returns: (transfer none): @string
  */
index 67539ec..d5d5038 100644 (file)
 
 
 /**
- * g_cclosure_marshal_BOOL__BOXED_BOXED:
- * @closure: A #GClosure.
- * @return_value: A #GValue to store the return value. May be %NULL
- *   if the callback of closure doesn't return a value.
- * @n_param_values: The length of the @param_values array.
- * @param_values: An array of #GValues holding the arguments
- *   on which to invoke the callback of closure.
- * @invocation_hint: The invocation hint given as the last argument to
- *   g_closure_invoke().
- * @marshal_data: Additional data specified when registering the
- *   marshaller, see g_closure_set_marshal() and
- *   g_closure_set_meta_marshal()
- *
- * An old alias for g_cclosure_marshal_BOOLEAN__BOXED_BOXED().
- */
-
-
-/**
  * g_cclosure_marshal_BOOL__FLAGS:
  *
  * Another name for g_cclosure_marshal_BOOLEAN__FLAGS().
index 6b372b7..3d021bc 100644 (file)
@@ -220,7 +220,7 @@ endif
 
 foreach h : gobject_headers
   hstr = '@0@'.format(h)
-  if not hstr.endswith('autocleanups.h') and not hstr.endswith('glib-types.h') and not hstr.endswith('gvaluecollector.h')
+  if not hstr.endswith('autocleanups.h') and not hstr.endswith('glib-types.h') and not hstr.endswith('gvaluecollector.h') and not hstr.endswith('glib-enumtypes.h')
     gobject_files += h
   endif
 endforeach
index cadabb1..804e376 100644 (file)
@@ -27,7 +27,7 @@ G_BEGIN_DECLS
 
 #define GI_MAJOR_VERSION 1
 #define GI_MINOR_VERSION 59
-#define GI_MICRO_VERSION 4
+#define GI_MICRO_VERSION 5
 
 #define GI_CHECK_VERSION(major,minor,micro) \
     (GI_MAJOR_VERSION > (major) || \
index 9d808b4..5bd443a 100644 (file)
@@ -1 +1 @@
-__version__ = '1.59.4'
+__version__ = '1.59.5'
index aee6a1a..32c9296 100644 (file)
@@ -30,6 +30,7 @@ from distutils.msvccompiler import MSVCCompiler
 from distutils.unixccompiler import UnixCCompiler
 from distutils.cygwinccompiler import Mingw32CCompiler
 from distutils.sysconfig import get_config_vars
+from distutils.sysconfig import customize_compiler as orig_customize_compiler
 
 from . import utils
 
@@ -40,6 +41,12 @@ def customize_compiler(compiler):
     defaults if alternatives through env vars are given.
     """
 
+    # The original customize_compiler() in distutils calls into macOS setup
+    # code the first time it is called. This makes sure we run that setup
+    # code as well.
+    dummy = distutils.ccompiler.new_compiler()
+    orig_customize_compiler(dummy)
+
     if compiler.compiler_type == "unix":
         (cc, cxx, ldshared, shlib_suffix, ar, ar_flags) = \
             get_config_vars('CC', 'CXX', 'LDSHARED', 'SHLIB_SUFFIX', 'AR', 'ARFLAGS')
index aa46714..099c117 100644 (file)
@@ -1,8 +1,9 @@
-/* A Bison parser, made by GNU Bison 3.2.4.  */
+/* A Bison parser, made by GNU Bison 3.3.2.  */
 
 /* Bison implementation for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc.
+   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation,
+   Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -47,7 +48,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "3.2.4"
+#define YYBISON_VERSION "3.3.2"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -65,7 +66,7 @@
 
 
 /* First part of user prologue.  */
-#line 29 "giscanner/scannerparser.y" /* yacc.c:338  */
+#line 29 "giscanner/scannerparser.y" /* yacc.c:337  */
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -285,7 +286,7 @@ set_or_merge_base_type (GISourceType *type,
 }
 
 
-#line 289 "giscanner/scannerparser.c" /* yacc.c:338  */
+#line 290 "giscanner/scannerparser.c" /* yacc.c:337  */
 # ifndef YY_NULLPTR
 #  if defined __cplusplus
 #   if 201103L <= __cplusplus
@@ -478,7 +479,7 @@ extern int yydebug;
 
 union YYSTYPE
 {
-#line 250 "giscanner/scannerparser.y" /* yacc.c:353  */
+#line 250 "giscanner/scannerparser.y" /* yacc.c:352  */
 
   char *str;
   GList *list;
@@ -489,7 +490,7 @@ union YYSTYPE
   FunctionSpecifier function_specifier;
   UnaryOperator unary_operator;
 
-#line 493 "giscanner/scannerparser.c" /* yacc.c:353  */
+#line 494 "giscanner/scannerparser.c" /* yacc.c:352  */
 };
 
 typedef union YYSTYPE YYSTYPE;
@@ -748,16 +749,16 @@ union yyalloc
 /* YYNSTATES -- Number of states.  */
 #define YYNSTATES  424
 
-/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
-   by yylex, with out-of-bounds checking.  */
 #define YYUNDEFTOK  2
 #define YYMAXUTOK   330
 
+/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
+   as returned by yylex, with out-of-bounds checking.  */
 #define YYTRANSLATE(YYX)                                                \
   ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
-   as returned by yylex, without out-of-bounds checking.  */
+   as returned by yylex.  */
 static const yytype_uint8 yytranslate[] =
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -1653,22 +1654,22 @@ static const yytype_uint8 yyr2[] =
 
 #define YYRECOVERING()  (!!yyerrstatus)
 
-#define YYBACKUP(Token, Value)                                  \
-do                                                              \
-  if (yychar == YYEMPTY)                                        \
-    {                                                           \
-      yychar = (Token);                                         \
-      yylval = (Value);                                         \
-      YYPOPSTACK (yylen);                                       \
-      yystate = *yyssp;                                         \
-      goto yybackup;                                            \
-    }                                                           \
-  else                                                          \
-    {                                                           \
-      yyerror (scanner, YY_("syntax error: cannot back up")); \
-      YYERROR;                                                  \
-    }                                                           \
-while (0)
+#define YYBACKUP(Token, Value)                                    \
+  do                                                              \
+    if (yychar == YYEMPTY)                                        \
+      {                                                           \
+        yychar = (Token);                                         \
+        yylval = (Value);                                         \
+        YYPOPSTACK (yylen);                                       \
+        yystate = *yyssp;                                         \
+        goto yybackup;                                            \
+      }                                                           \
+    else                                                          \
+      {                                                           \
+        yyerror (scanner, YY_("syntax error: cannot back up")); \
+        YYERROR;                                                  \
+      }                                                           \
+  while (0)
 
 /* Error token number */
 #define YYTERROR        1
@@ -1784,7 +1785,7 @@ yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, GISourceScanne
       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
       yy_symbol_print (stderr,
                        yystos[yyssp[yyi + 1 - yynrhs]],
-                       &(yyvsp[(yyi + 1) - (yynrhs)])
+                       &yyvsp[(yyi + 1) - (yynrhs)]
                                               , scanner);
       YYFPRINTF (stderr, "\n");
     }
@@ -1888,7 +1889,10 @@ yytnamerr (char *yyres, const char *yystr)
           case '\\':
             if (*++yyp != '\\')
               goto do_not_strip_quotes;
-            /* Fall through.  */
+            else
+              goto append;
+
+          append:
           default:
             if (yyres)
               yyres[yyn] = *yyp;
@@ -1984,10 +1988,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
                 yyarg[yycount++] = yytname[yyx];
                 {
                   YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
-                  if (! (yysize <= yysize1
-                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+                  if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
+                    yysize = yysize1;
+                  else
                     return 2;
-                  yysize = yysize1;
                 }
               }
         }
@@ -2011,9 +2015,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
 
   {
     YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
-    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+    if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
+      yysize = yysize1;
+    else
       return 2;
-    yysize = yysize1;
   }
 
   if (*yymsg_alloc < yysize)
@@ -2140,23 +2145,31 @@ yyparse (GISourceScanner* scanner)
   yychar = YYEMPTY; /* Cause a token to be read.  */
   goto yysetstate;
 
+
 /*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate.  |
+| yynewstate -- push a new state, which is found in yystate.  |
 `------------------------------------------------------------*/
- yynewstate:
+yynewstate:
   /* In all cases, when you get here, the value and location stacks
      have just been pushed.  So pushing a state here evens the stacks.  */
   yyssp++;
 
- yysetstate:
+
+/*--------------------------------------------------------------------.
+| yynewstate -- set current state (the top of the stack) to yystate.  |
+`--------------------------------------------------------------------*/
+yysetstate:
   *yyssp = (yytype_int16) yystate;
 
   if (yyss + yystacksize - 1 <= yyssp)
+#if !defined yyoverflow && !defined YYSTACK_RELOCATE
+    goto yyexhaustedlab;
+#else
     {
       /* Get the current used size of the three stacks, in elements.  */
       YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1);
 
-#ifdef yyoverflow
+# if defined yyoverflow
       {
         /* Give user a chance to reallocate the stack.  Use copies of
            these so that the &'s don't force the real ones into
@@ -2175,10 +2188,7 @@ yyparse (GISourceScanner* scanner)
         yyss = yyss1;
         yyvs = yyvs1;
       }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
-      goto yyexhaustedlab;
-# else
+# else /* defined YYSTACK_RELOCATE */
       /* Extend the stack our own way.  */
       if (YYMAXDEPTH <= yystacksize)
         goto yyexhaustedlab;
@@ -2194,12 +2204,11 @@ yyparse (GISourceScanner* scanner)
           goto yyexhaustedlab;
         YYSTACK_RELOCATE (yyss_alloc, yyss);
         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
-#  undef YYSTACK_RELOCATE
+# undef YYSTACK_RELOCATE
         if (yyss1 != yyssa)
           YYSTACK_FREE (yyss1);
       }
 # endif
-#endif /* no yyoverflow */
 
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
@@ -2210,6 +2219,7 @@ yyparse (GISourceScanner* scanner)
       if (yyss + yystacksize - 1 <= yyssp)
         YYABORT;
     }
+#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
 
   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 
@@ -2218,11 +2228,11 @@ yyparse (GISourceScanner* scanner)
 
   goto yybackup;
 
+
 /*-----------.
 | yybackup.  |
 `-----------*/
 yybackup:
-
   /* Do appropriate processing given the current state.  Read a
      lookahead token if we need one and don't already have one.  */
 
@@ -2295,7 +2305,7 @@ yydefault:
 
 
 /*-----------------------------.
-| yyreduce -- Do a reduction.  |
+| yyreduce -- do a reduction.  |
 `-----------------------------*/
 yyreduce:
   /* yyn is the number of a rule to reduce with.  */
@@ -2316,7 +2326,7 @@ yyreduce:
   switch (yyn)
     {
         case 2:
-#line 345 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 345 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = g_hash_table_lookup (scanner->const_table, (yyvsp[0].str));
                if ((yyval.symbol) == NULL) {
@@ -2325,11 +2335,11 @@ yyreduce:
                        (yyval.symbol) = gi_source_symbol_ref ((yyval.symbol));
                }
          }
-#line 2329 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2339 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 3:
-#line 354 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 354 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                char *rest;
                guint64 value;
@@ -2345,58 +2355,58 @@ yyreduce:
                (yyval.symbol)->const_int = value;
                (yyval.symbol)->const_int_is_unsigned = (rest && (rest[0] == 'U'));
          }
-#line 2349 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2359 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 4:
-#line 370 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 370 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_boolean_set = TRUE;
                (yyval.symbol)->const_boolean = g_ascii_strcasecmp (yytext, "true") == 0 ? TRUE : FALSE;
          }
-#line 2359 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2369 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 5:
-#line 376 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 376 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = g_utf8_get_char(yytext + 1);
          }
-#line 2369 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2379 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 6:
-#line 382 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 382 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_double_set = TRUE;
                (yyval.symbol)->const_double = 0.0;
         sscanf (yytext, "%lf", &((yyval.symbol)->const_double));
          }
-#line 2380 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2390 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 8:
-#line 390 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 390 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = (yyvsp[-1].symbol);
          }
-#line 2388 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2398 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 9:
-#line 394 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 394 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2396 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2406 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 10:
-#line 402 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 402 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                yytext[strlen (yytext) - 1] = '\0';
@@ -2411,11 +2421,11 @@ yyreduce:
                   }
 
          }
-#line 2415 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2425 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 11:
-#line 417 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 417 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                char *strings, *string2;
                (yyval.symbol) = (yyvsp[-1].symbol);
@@ -2426,91 +2436,91 @@ yyreduce:
                g_free (string2);
                (yyval.symbol)->const_string = strings;
          }
-#line 2430 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2440 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 12:
-#line 431 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 431 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.str) = g_strdup (yytext);
          }
-#line 2438 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2448 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 16:
-#line 444 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 444 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2446 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2456 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 17:
-#line 448 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 448 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2454 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2464 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 18:
-#line 452 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 452 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2462 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2472 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 19:
-#line 456 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 456 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2470 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2480 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 20:
-#line 460 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 460 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2478 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2488 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 21:
-#line 464 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 464 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2486 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2496 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 22:
-#line 468 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 468 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2494 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2504 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 26:
-#line 481 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 481 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2502 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2512 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 27:
-#line 485 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 485 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2510 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2520 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 28:
-#line 489 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 489 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                switch ((yyvsp[-1].unary_operator)) {
                case UNARY_PLUS:
@@ -2533,98 +2543,98 @@ yyreduce:
                        break;
                }
          }
-#line 2537 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2547 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 29:
-#line 512 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 512 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = (yyvsp[-1].symbol);
                if ((yyval.symbol)->const_int_set) {
                        (yyval.symbol)->base_type = gi_source_basic_type_new ((yyval.symbol)->const_int_is_unsigned ? "guint64" : "gint64");
                }
          }
-#line 2548 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2558 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 30:
-#line 519 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 519 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = (yyvsp[-1].symbol);
                if ((yyval.symbol)->const_int_set) {
                        (yyval.symbol)->base_type = gi_source_basic_type_new ("guint64");
                }
          }
-#line 2559 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2569 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 31:
-#line 526 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 526 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2567 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2577 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 32:
-#line 530 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 530 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                ctype_free ((yyvsp[-1].ctype));
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2576 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2586 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 33:
-#line 538 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 538 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.unary_operator) = UNARY_ADDRESS_OF;
          }
-#line 2584 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2594 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 34:
-#line 542 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 542 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.unary_operator) = UNARY_POINTER_INDIRECTION;
          }
-#line 2592 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2602 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 35:
-#line 546 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 546 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.unary_operator) = UNARY_PLUS;
          }
-#line 2600 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2610 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 36:
-#line 550 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 550 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.unary_operator) = UNARY_MINUS;
          }
-#line 2608 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2618 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 37:
-#line 554 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 554 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.unary_operator) = UNARY_BITWISE_COMPLEMENT;
          }
-#line 2616 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2626 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 38:
-#line 558 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 558 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.unary_operator) = UNARY_LOGICAL_NEGATION;
          }
-#line 2624 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2634 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 40:
-#line 566 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 566 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = (yyvsp[0].symbol);
                if ((yyval.symbol)->const_int_set || (yyval.symbol)->const_double_set || (yyval.symbol)->const_string != NULL) {
@@ -2633,21 +2643,21 @@ yyreduce:
                        ctype_free ((yyvsp[-2].ctype));
                }
          }
-#line 2637 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2647 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 42:
-#line 579 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 579 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int * (yyvsp[0].symbol)->const_int;
          }
-#line 2647 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2657 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 43:
-#line 585 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 585 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
@@ -2655,11 +2665,11 @@ yyreduce:
                        (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int / (yyvsp[0].symbol)->const_int;
                }
          }
-#line 2659 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2669 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 44:
-#line 593 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 593 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
@@ -2667,31 +2677,31 @@ yyreduce:
                        (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int % (yyvsp[0].symbol)->const_int;
                }
          }
-#line 2671 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2681 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 46:
-#line 605 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 605 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int + (yyvsp[0].symbol)->const_int;
          }
-#line 2681 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2691 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 47:
-#line 611 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 611 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int - (yyvsp[0].symbol)->const_int;
          }
-#line 2691 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2701 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 49:
-#line 621 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 621 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
@@ -2703,111 +2713,111 @@ yyreduce:
                 */
                is_bitfield = TRUE;
          }
-#line 2707 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2717 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 50:
-#line 633 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 633 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int >> (yyvsp[0].symbol)->const_int;
          }
-#line 2717 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2727 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 52:
-#line 643 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 643 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int < (yyvsp[0].symbol)->const_int;
          }
-#line 2727 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2737 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 53:
-#line 649 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 649 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int > (yyvsp[0].symbol)->const_int;
          }
-#line 2737 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2747 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 54:
-#line 655 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 655 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int <= (yyvsp[0].symbol)->const_int;
          }
-#line 2747 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2757 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 55:
-#line 661 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 661 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int >= (yyvsp[0].symbol)->const_int;
          }
-#line 2757 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2767 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 57:
-#line 671 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 671 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int == (yyvsp[0].symbol)->const_int;
          }
-#line 2767 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2777 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 58:
-#line 677 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 677 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int != (yyvsp[0].symbol)->const_int;
          }
-#line 2777 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2787 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 60:
-#line 687 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 687 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int & (yyvsp[0].symbol)->const_int;
          }
-#line 2787 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2797 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 62:
-#line 697 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 697 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int ^ (yyvsp[0].symbol)->const_int;
          }
-#line 2797 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2807 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 64:
-#line 707 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 707 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
                (yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int | (yyvsp[0].symbol)->const_int;
          }
-#line 2807 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2817 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 66:
-#line 717 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 717 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
@@ -2815,11 +2825,11 @@ yyreduce:
                  gi_source_symbol_get_const_boolean ((yyvsp[-2].symbol)) &&
                  gi_source_symbol_get_const_boolean ((yyvsp[0].symbol));
          }
-#line 2819 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2829 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 68:
-#line 729 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 729 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
                (yyval.symbol)->const_int_set = TRUE;
@@ -2827,35 +2837,35 @@ yyreduce:
                  gi_source_symbol_get_const_boolean ((yyvsp[-2].symbol)) ||
                  gi_source_symbol_get_const_boolean ((yyvsp[0].symbol));
          }
-#line 2831 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2841 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 70:
-#line 741 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 741 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_get_const_boolean ((yyvsp[-4].symbol)) ? (yyvsp[-2].symbol) : (yyvsp[0].symbol);
          }
-#line 2839 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2849 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 72:
-#line 749 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 749 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2847 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2857 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 86:
-#line 772 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 772 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 2855 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2865 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 88:
-#line 785 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 785 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                GList *l;
                for (l = (yyvsp[-1].list); l != NULL; l = l->next) {
@@ -2873,196 +2883,196 @@ yyreduce:
                }
                ctype_free ((yyvsp[-2].ctype));
          }
-#line 2877 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2887 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 89:
-#line 803 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 803 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                ctype_free ((yyvsp[-1].ctype));
          }
-#line 2885 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2895 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 91:
-#line 813 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 813 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = (yyvsp[0].ctype);
                (yyval.ctype)->storage_class_specifier |= (yyvsp[-1].storage_class_specifier);
          }
-#line 2894 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2904 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 92:
-#line 818 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 818 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = gi_source_type_new (CTYPE_INVALID);
                (yyval.ctype)->storage_class_specifier |= (yyvsp[0].storage_class_specifier);
          }
-#line 2903 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2913 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 93:
-#line 823 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 823 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = (yyvsp[-1].ctype);
                set_or_merge_base_type ((yyvsp[-1].ctype), (yyvsp[0].ctype));
          }
-#line 2912 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2922 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 95:
-#line 829 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 829 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = (yyvsp[0].ctype);
                (yyval.ctype)->type_qualifier |= (yyvsp[-1].type_qualifier);
          }
-#line 2921 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2931 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 96:
-#line 834 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 834 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = gi_source_type_new (CTYPE_INVALID);
                (yyval.ctype)->type_qualifier |= (yyvsp[0].type_qualifier);
          }
-#line 2930 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2940 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 97:
-#line 839 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 839 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = (yyvsp[0].ctype);
                (yyval.ctype)->function_specifier |= (yyvsp[-1].function_specifier);
          }
-#line 2939 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2949 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 98:
-#line 844 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 844 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = gi_source_type_new (CTYPE_INVALID);
                (yyval.ctype)->function_specifier |= (yyvsp[0].function_specifier);
          }
-#line 2948 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2958 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 99:
-#line 852 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 852 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.list) = g_list_append (NULL, (yyvsp[0].symbol));
          }
-#line 2956 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2966 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 100:
-#line 856 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 856 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.list) = g_list_append ((yyvsp[-2].list), (yyvsp[0].symbol));
          }
-#line 2964 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2974 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 103:
-#line 868 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 868 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.storage_class_specifier) = STORAGE_CLASS_TYPEDEF;
          }
-#line 2972 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2982 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 104:
-#line 872 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 872 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.storage_class_specifier) = STORAGE_CLASS_EXTERN;
          }
-#line 2980 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2990 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 105:
-#line 876 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 876 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.storage_class_specifier) = STORAGE_CLASS_STATIC;
          }
-#line 2988 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 2998 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 106:
-#line 880 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 880 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.storage_class_specifier) = STORAGE_CLASS_AUTO;
          }
-#line 2996 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3006 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 107:
-#line 884 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 884 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.storage_class_specifier) = STORAGE_CLASS_REGISTER;
          }
-#line 3004 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3014 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 108:
-#line 888 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 888 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.storage_class_specifier) = STORAGE_CLASS_THREAD_LOCAL;
          }
-#line 3012 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3022 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 109:
-#line 895 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 895 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.str) = g_strdup (yytext);
          }
-#line 3020 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3030 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 110:
-#line 902 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 902 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = gi_source_type_new (CTYPE_VOID);
          }
-#line 3028 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3038 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 111:
-#line 906 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 906 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = gi_source_basic_type_new ("signed");
          }
-#line 3036 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3046 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 112:
-#line 910 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 910 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = gi_source_basic_type_new ("unsigned");
          }
-#line 3044 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3054 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 113:
-#line 914 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 914 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = gi_source_type_new (CTYPE_BASIC_TYPE);
                (yyval.ctype)->name = (yyvsp[0].str);
          }
-#line 3053 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3063 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 116:
-#line 921 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 921 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = gi_source_typedef_new ((yyvsp[0].str));
                g_free ((yyvsp[0].str));
          }
-#line 3062 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3072 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 117:
-#line 929 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 929 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                GISourceSymbol *sym;
                (yyval.ctype) = (yyvsp[-4].ctype);
@@ -3082,55 +3092,55 @@ yyreduce:
                gi_source_scanner_add_symbol (scanner, sym);
                gi_source_symbol_unref (sym);
          }
-#line 3086 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3096 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 118:
-#line 949 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 949 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = (yyvsp[-3].ctype);
                (yyval.ctype)->child_list = (yyvsp[-1].list);
          }
-#line 3095 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3105 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 119:
-#line 954 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 954 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = (yyvsp[-1].ctype);
                (yyval.ctype)->name = (yyvsp[0].str);
          }
-#line 3104 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3114 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 120:
-#line 962 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 962 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                 scanner->private = FALSE;
                (yyval.ctype) = gi_source_struct_new (NULL);
          }
-#line 3113 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3123 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 121:
-#line 967 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 967 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                 scanner->private = FALSE;
                (yyval.ctype) = gi_source_union_new (NULL);
          }
-#line 3122 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3132 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 123:
-#line 976 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 976 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.list) = g_list_concat ((yyvsp[-1].list), (yyvsp[0].list));
          }
-#line 3130 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3140 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 124:
-#line 983 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 983 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
            GList *l;
            (yyval.list) = NULL;
@@ -3147,70 +3157,70 @@ yyreduce:
              }
            ctype_free ((yyvsp[-2].ctype));
          }
-#line 3151 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3161 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 125:
-#line 1003 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1003 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = (yyvsp[-1].ctype);
                set_or_merge_base_type ((yyvsp[-1].ctype), (yyvsp[0].ctype));
          }
-#line 3160 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3170 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 127:
-#line 1009 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1009 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = (yyvsp[0].ctype);
                (yyval.ctype)->type_qualifier |= (yyvsp[-1].type_qualifier);
          }
-#line 3169 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3179 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 128:
-#line 1014 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1014 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = gi_source_type_new (CTYPE_INVALID);
                (yyval.ctype)->type_qualifier |= (yyvsp[0].type_qualifier);
          }
-#line 3178 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3188 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 129:
-#line 1022 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1022 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.list) = g_list_append (NULL, (yyvsp[0].symbol));
          }
-#line 3186 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3196 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 130:
-#line 1026 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1026 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.list) = g_list_append ((yyvsp[-2].list), (yyvsp[0].symbol));
          }
-#line 3194 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3204 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 131:
-#line 1033 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1033 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 3202 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3212 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 133:
-#line 1038 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1038 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
          }
-#line 3210 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3220 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 134:
-#line 1042 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1042 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = (yyvsp[-2].symbol);
                if ((yyvsp[0].symbol)->const_int_set) {
@@ -3218,99 +3228,99 @@ yyreduce:
                  (yyval.symbol)->const_int = (yyvsp[0].symbol)->const_int;
                }
          }
-#line 3222 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3232 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 135:
-#line 1053 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1053 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = gi_source_enum_new ((yyvsp[-3].str));
                (yyval.ctype)->child_list = (yyvsp[-1].list);
                (yyval.ctype)->is_bitfield = is_bitfield || scanner->flags;
                last_enum_value = -1;
          }
-#line 3233 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3243 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 136:
-#line 1060 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1060 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = gi_source_enum_new (NULL);
                (yyval.ctype)->child_list = (yyvsp[-1].list);
                (yyval.ctype)->is_bitfield = is_bitfield || scanner->flags;
                last_enum_value = -1;
          }
-#line 3244 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3254 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 137:
-#line 1067 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1067 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = gi_source_enum_new ((yyvsp[-4].str));
                (yyval.ctype)->child_list = (yyvsp[-2].list);
                (yyval.ctype)->is_bitfield = is_bitfield || scanner->flags;
                last_enum_value = -1;
          }
-#line 3255 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3265 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 138:
-#line 1074 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1074 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = gi_source_enum_new (NULL);
                (yyval.ctype)->child_list = (yyvsp[-2].list);
                (yyval.ctype)->is_bitfield = is_bitfield || scanner->flags;
                last_enum_value = -1;
          }
-#line 3266 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3276 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 139:
-#line 1081 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1081 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = gi_source_enum_new ((yyvsp[0].str));
          }
-#line 3274 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3284 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 140:
-#line 1088 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1088 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                 scanner->flags = FALSE;
                 scanner->private = FALSE;
           }
-#line 3283 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3293 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 141:
-#line 1096 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1096 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                /* reset flag before the first enum value */
                is_bitfield = FALSE;
          }
-#line 3292 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3302 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 142:
-#line 1101 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1101 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
             (yyvsp[0].symbol)->private = scanner->private;
             (yyval.list) = g_list_append (NULL, (yyvsp[0].symbol));
          }
-#line 3301 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3311 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 143:
-#line 1106 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1106 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
             (yyvsp[0].symbol)->private = scanner->private;
             (yyval.list) = g_list_append ((yyvsp[-2].list), (yyvsp[0].symbol));
          }
-#line 3310 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3320 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 144:
-#line 1114 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1114 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_OBJECT, scanner->current_file, lineno);
                (yyval.symbol)->ident = (yyvsp[0].str);
@@ -3318,11 +3328,11 @@ yyreduce:
                (yyval.symbol)->const_int = ++last_enum_value;
                g_hash_table_insert (scanner->const_table, g_strdup ((yyval.symbol)->ident), gi_source_symbol_ref ((yyval.symbol)));
          }
-#line 3322 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3332 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 145:
-#line 1122 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1122 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_OBJECT, scanner->current_file, lineno);
                (yyval.symbol)->ident = (yyvsp[-2].str);
@@ -3331,95 +3341,95 @@ yyreduce:
                last_enum_value = (yyval.symbol)->const_int;
                g_hash_table_insert (scanner->const_table, g_strdup ((yyval.symbol)->ident), gi_source_symbol_ref ((yyval.symbol)));
          }
-#line 3335 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3345 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 146:
-#line 1134 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1134 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.type_qualifier) = TYPE_QUALIFIER_CONST;
          }
-#line 3343 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3353 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 147:
-#line 1138 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1138 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.type_qualifier) = TYPE_QUALIFIER_RESTRICT;
          }
-#line 3351 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3361 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 148:
-#line 1142 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1142 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.type_qualifier) = TYPE_QUALIFIER_EXTENSION;
          }
-#line 3359 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3369 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 149:
-#line 1146 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1146 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.type_qualifier) = TYPE_QUALIFIER_VOLATILE;
          }
-#line 3367 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3377 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 150:
-#line 1153 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1153 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.function_specifier) = FUNCTION_INLINE;
          }
-#line 3375 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3385 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 151:
-#line 1160 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1160 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = (yyvsp[0].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[-1].ctype));
          }
-#line 3384 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3394 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 153:
-#line 1169 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1169 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
                (yyval.symbol)->ident = (yyvsp[0].str);
          }
-#line 3393 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3403 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 154:
-#line 1174 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1174 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = (yyvsp[-1].symbol);
          }
-#line 3401 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3411 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 155:
-#line 1178 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1178 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = (yyvsp[-3].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new ((yyvsp[-1].symbol)));
          }
-#line 3410 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3420 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 156:
-#line 1183 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1183 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = (yyvsp[-2].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new (NULL));
          }
-#line 3419 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3429 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 157:
-#line 1188 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1188 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                GISourceType *func = gi_source_function_new ();
                // ignore (void) parameter list
@@ -3429,49 +3439,49 @@ yyreduce:
                (yyval.symbol) = (yyvsp[-3].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), func);
          }
-#line 3433 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3443 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 158:
-#line 1198 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1198 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                GISourceType *func = gi_source_function_new ();
                func->child_list = (yyvsp[-1].list);
                (yyval.symbol) = (yyvsp[-3].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), func);
          }
-#line 3444 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3454 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 159:
-#line 1205 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1205 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                GISourceType *func = gi_source_function_new ();
                (yyval.symbol) = (yyvsp[-2].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), func);
          }
-#line 3454 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3464 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 160:
-#line 1214 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1214 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = gi_source_pointer_new (NULL);
                (yyval.ctype)->type_qualifier = (yyvsp[0].type_qualifier);
          }
-#line 3463 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3473 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 161:
-#line 1219 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1219 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.ctype) = gi_source_pointer_new (NULL);
          }
-#line 3471 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3481 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 162:
-#line 1223 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1223 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                GISourceType **base = &((yyvsp[0].ctype)->base_type);
 
@@ -3482,11 +3492,11 @@ yyreduce:
                (*base)->type_qualifier = (yyvsp[-1].type_qualifier);
                (yyval.ctype) = (yyvsp[0].ctype);
          }
-#line 3486 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3496 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 163:
-#line 1234 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1234 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                GISourceType **base = &((yyvsp[0].ctype)->base_type);
 
@@ -3496,162 +3506,162 @@ yyreduce:
                *base = gi_source_pointer_new (NULL);
                (yyval.ctype) = (yyvsp[0].ctype);
          }
-#line 3500 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3510 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 165:
-#line 1248 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1248 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.type_qualifier) = (yyvsp[-1].type_qualifier) | (yyvsp[0].type_qualifier);
          }
-#line 3508 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3518 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 166:
-#line 1255 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1255 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.list) = g_list_append (NULL, (yyvsp[0].symbol));
          }
-#line 3516 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3526 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 167:
-#line 1259 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1259 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.list) = g_list_append ((yyvsp[-2].list), (yyvsp[0].symbol));
          }
-#line 3524 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3534 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 168:
-#line 1266 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1266 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = (yyvsp[0].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[-1].ctype));
          }
-#line 3533 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3543 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 169:
-#line 1271 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1271 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = (yyvsp[0].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[-1].ctype));
          }
-#line 3542 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3552 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 170:
-#line 1276 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1276 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
                (yyval.symbol)->base_type = (yyvsp[0].ctype);
          }
-#line 3551 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3561 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 171:
-#line 1281 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1281 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_ELLIPSIS, scanner->current_file, lineno);
          }
-#line 3559 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3569 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 172:
-#line 1288 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1288 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                GISourceSymbol *sym = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
                sym->ident = (yyvsp[0].str);
                (yyval.list) = g_list_append (NULL, sym);
          }
-#line 3569 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3579 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 173:
-#line 1294 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1294 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                GISourceSymbol *sym = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
                sym->ident = (yyvsp[0].str);
                (yyval.list) = g_list_append ((yyvsp[-2].list), sym);
          }
-#line 3579 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3589 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 176:
-#line 1308 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1308 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
                gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[0].ctype));
          }
-#line 3588 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3598 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 178:
-#line 1314 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1314 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = (yyvsp[0].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[-1].ctype));
          }
-#line 3597 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3607 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 179:
-#line 1322 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1322 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = (yyvsp[-1].symbol);
          }
-#line 3605 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3615 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 180:
-#line 1326 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1326 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
                gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new (NULL));
          }
-#line 3614 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3624 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 181:
-#line 1331 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1331 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
                gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new ((yyvsp[-1].symbol)));
          }
-#line 3623 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3633 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 182:
-#line 1336 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1336 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = (yyvsp[-2].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new (NULL));
          }
-#line 3632 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3642 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 183:
-#line 1341 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1341 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.symbol) = (yyvsp[-3].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new ((yyvsp[-1].symbol)));
          }
-#line 3641 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3651 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 184:
-#line 1346 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1346 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                GISourceType *func = gi_source_function_new ();
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
                gi_source_symbol_merge_type ((yyval.symbol), func);
          }
-#line 3651 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3661 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 185:
-#line 1352 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1352 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                GISourceType *func = gi_source_function_new ();
                // ignore (void) parameter list
@@ -3661,21 +3671,21 @@ yyreduce:
                (yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
                gi_source_symbol_merge_type ((yyval.symbol), func);
          }
-#line 3665 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3675 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 186:
-#line 1362 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1362 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                GISourceType *func = gi_source_function_new ();
                (yyval.symbol) = (yyvsp[-2].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), func);
          }
-#line 3675 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3685 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 187:
-#line 1368 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1368 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                GISourceType *func = gi_source_function_new ();
                // ignore (void) parameter list
@@ -3685,35 +3695,35 @@ yyreduce:
                (yyval.symbol) = (yyvsp[-3].symbol);
                gi_source_symbol_merge_type ((yyval.symbol), func);
          }
-#line 3689 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3699 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 188:
-#line 1381 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1381 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.str) = g_strdup (yytext);
          }
-#line 3697 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3707 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 239:
-#line 1489 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1489 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.str) = g_strdup (yytext + strlen ("#define "));
          }
-#line 3705 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3715 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 240:
-#line 1496 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1496 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                (yyval.str) = g_strdup (yytext + strlen ("#define "));
          }
-#line 3713 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3723 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 242:
-#line 1507 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1507 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                if ((yyvsp[0].symbol)->const_int_set || (yyvsp[0].symbol)->const_boolean_set || (yyvsp[0].symbol)->const_double_set || (yyvsp[0].symbol)->const_string != NULL) {
                        GISourceSymbol *macro = gi_source_symbol_copy ((yyvsp[0].symbol));
@@ -3727,85 +3737,85 @@ yyreduce:
                        gi_source_symbol_unref ((yyvsp[0].symbol));
                }
          }
-#line 3731 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3741 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 243:
-#line 1524 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1524 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                push_conditional (scanner, FOR_GI_SCANNER);
                update_skipping (scanner);
          }
-#line 3740 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3750 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 244:
-#line 1529 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1529 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                push_conditional (scanner, NOT_GI_SCANNER);
                update_skipping (scanner);
          }
-#line 3749 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3759 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 245:
-#line 1534 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1534 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                warn_if_cond_has_gi_scanner (scanner, yytext);
                push_conditional (scanner, IRRELEVANT);
          }
-#line 3758 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3768 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 246:
-#line 1539 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1539 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                warn_if_cond_has_gi_scanner (scanner, yytext);
                push_conditional (scanner, IRRELEVANT);
          }
-#line 3767 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3777 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 247:
-#line 1544 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1544 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                warn_if_cond_has_gi_scanner (scanner, yytext);
                push_conditional (scanner, IRRELEVANT);
          }
-#line 3776 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3786 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 248:
-#line 1549 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1549 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                warn_if_cond_has_gi_scanner (scanner, yytext);
                pop_conditional (scanner);
                push_conditional (scanner, IRRELEVANT);
                update_skipping (scanner);
          }
-#line 3787 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3797 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 249:
-#line 1556 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1556 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                toggle_conditional (scanner);
                update_skipping (scanner);
          }
-#line 3796 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3806 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
   case 250:
-#line 1561 "giscanner/scannerparser.y" /* yacc.c:1645  */
+#line 1561 "giscanner/scannerparser.y" /* yacc.c:1652  */
     {
                pop_conditional (scanner);
                update_skipping (scanner);
          }
-#line 3805 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3815 "giscanner/scannerparser.c" /* yacc.c:1652  */
     break;
 
 
-#line 3809 "giscanner/scannerparser.c" /* yacc.c:1645  */
+#line 3819 "giscanner/scannerparser.c" /* yacc.c:1652  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -3919,12 +3929,10 @@ yyerrlab:
 | yyerrorlab -- error raised explicitly by YYERROR.  |
 `---------------------------------------------------*/
 yyerrorlab:
-
-  /* Pacify compilers like GCC when the user code never invokes
-     YYERROR and the label yyerrorlab therefore never appears in user
-     code.  */
-  if (/*CONSTCOND*/ 0)
-     goto yyerrorlab;
+  /* Pacify compilers when the user code never invokes YYERROR and the
+     label yyerrorlab therefore never appears in user code.  */
+  if (0)
+    YYERROR;
 
   /* Do not reclaim the symbols of the rule whose action triggered
      this YYERROR.  */
@@ -3986,6 +3994,7 @@ yyacceptlab:
   yyresult = 0;
   goto yyreturn;
 
+
 /*-----------------------------------.
 | yyabortlab -- YYABORT comes here.  |
 `-----------------------------------*/
@@ -3993,6 +4002,7 @@ yyabortlab:
   yyresult = 1;
   goto yyreturn;
 
+
 #if !defined yyoverflow || YYERROR_VERBOSE
 /*-------------------------------------------------.
 | yyexhaustedlab -- memory exhaustion comes here.  |
@@ -4003,6 +4013,10 @@ yyexhaustedlab:
   /* Fall through.  */
 #endif
 
+
+/*-----------------------------------------------------.
+| yyreturn -- parsing is finished, return the result.  |
+`-----------------------------------------------------*/
 yyreturn:
   if (yychar != YYEMPTY)
     {
@@ -4032,7 +4046,7 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 1574 "giscanner/scannerparser.y" /* yacc.c:1903  */
+#line 1574 "giscanner/scannerparser.y" /* yacc.c:1918  */
 
 static void
 yyerror (GISourceScanner *scanner, const char *s)
index b93dc21..da181d4 100644 (file)
@@ -1,8 +1,9 @@
-/* A Bison parser, made by GNU Bison 3.2.4.  */
+/* A Bison parser, made by GNU Bison 3.3.2.  */
 
 /* Bison interface for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc.
+   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation,
+   Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -203,7 +204,7 @@ extern int yydebug;
 
 union YYSTYPE
 {
-#line 250 "giscanner/scannerparser.y" /* yacc.c:1906  */
+#line 250 "giscanner/scannerparser.y" /* yacc.c:1921  */
 
   char *str;
   GList *list;
@@ -214,7 +215,7 @@ union YYSTYPE
   FunctionSpecifier function_specifier;
   UnaryOperator unary_operator;
 
-#line 218 "giscanner/scannerparser.h" /* yacc.c:1906  */
+#line 219 "giscanner/scannerparser.h" /* yacc.c:1921  */
 };
 
 typedef union YYSTYPE YYSTYPE;
index 3a5d9d5..43d8a3e 100644 (file)
@@ -21,4 +21,4 @@ Libs.private:
 
 Name: gobject-introspection
 Description: GObject Introspection
-Version: 1.59.4
+Version: 1.59.5
index 94039de..5c98d15 100644 (file)
@@ -20,4 +20,4 @@ Libs.private:
 
 Name: gobject-introspection
 Description: GObject Introspection
-Version: 1.59.4
+Version: 1.59.5
index c81e669..9d6dd9f 100644 (file)
@@ -4704,6 +4704,12 @@ m4_if([$1], [CXX], [
        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
        _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
         ;;
+      # flang / f18. f95 an alias for gfortran or flang on Debian
+      flang* | f18* | f95*)
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
       # icc used to be incompatible with GCC.
       # ICC 10 doesn't accept -KPIC any more.
       icc* | ifort*)
index a9212d3..6bb9e76 100644 (file)
@@ -1,5 +1,5 @@
 project('gobject-introspection', 'c',
-  version: '1.59.4',
+  version: '1.59.5',
   meson_version: '>= 0.47.0',
   default_options: [
     'warning_level=1',