[gobject-introspection/issue-309: 4/4] Support array arguments with static keyword



commit 78c3b2c487cc515d62c9aff2c8d49f6e1a5664bd
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Wed Sep 4 19:39:25 2019 +0100

    Support array arguments with static keyword
    
    C99 allows defining an array argument with a fixed size as:
    
      void foo (int arr[static 10])
    
    Compilers conforming to the C99 specification will be able to warn if
    the function is called with NULL or with an array smaller than the
    specified length, something that does not happen when using pre-C99
    declarations like:
    
      void foo (int arr[10])
    
    As the declaration above is identical to:
    
      void foo (int arr[])
    
    Which is, in turn, identical to:
    
      void foo (int *arr)
    
    Fixes: #309

 giscanner/scannerparser.y                          |  11 +
 .../Regress.test_array_static_in_int.page          |  38 ++
 .../Regress.test_array_static_in_int.page          |  36 ++
 .../Regress.test_array_static_in_int.page          |  37 ++
 tests/scanner/Regress-1.0-expected.gir             | 623 +++++++++++----------
 tests/scanner/Regress-1.0-sections-expected.txt    |   1 +
 tests/scanner/regress.c                            |  16 +
 tests/scanner/regress.h                            |   7 +
 8 files changed, 466 insertions(+), 303 deletions(-)
---
diff --git a/giscanner/scannerparser.y b/giscanner/scannerparser.y
index 6a2ffc1d..decd0f2b 100644
--- a/giscanner/scannerparser.y
+++ b/giscanner/scannerparser.y
@@ -1091,6 +1091,12 @@ enum_keyword
           }
         ;
 
+static_keyword
+        : STATIC
+          {
+          }
+        ;
+
 enumerator_list
        :
          {
@@ -1174,6 +1180,11 @@ direct_declarator
          {
                $$ = $2;
          }
+        | direct_declarator '[' static_keyword assignment_expression ']'
+          {
+                $$ = $1;
+                gi_source_symbol_merge_type ($$, gi_source_array_new ($4));
+          }
        | direct_declarator '[' assignment_expression ']'
          {
                $$ = $1;
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_array_static_in_int.page 
b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_static_in_int.page
new file mode 100644
index 00000000..ee93192b
--- /dev/null
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.test_array_static_in_int.page
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_static_in_int"
+      type="topic"
+      style="function"
+      xmlns="http://projectmallard.org/1.0/";
+      xmlns:api="http://projectmallard.org/experimental/api/";
+      xmlns:ui="http://projectmallard.org/1.0/ui/";>
+  <info>
+    <link xref="index" group="function" type="guide"/>
+    <api:function>
+      <api:returns>
+        <api:type>void</api:type>
+      </api:returns>
+      <api:name>regress_test_array_static_in_int</api:name>
+      <api:arg>
+        <api:type>int*</api:type>
+        <api:name>x</api:name>
+      </api:arg>
+    </api:function>
+  </info>
+  <title>regress_test_array_static_in_int</title>
+  <synopsis><code mime="text/x-csrc">
+void regress_test_array_static_in_int (int* x);
+  </code></synopsis>
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+  <p>a list of 10 integers</p>
+</item>
+<item>
+<title><code>Returns</code></title>
+
+</item>
+</terms>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_static_in_int.page 
b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_static_in_int.page
new file mode 100644
index 00000000..2cd3b478
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_array_static_in_int.page
@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_static_in_int"
+      type="topic"
+      style="function"
+      xmlns="http://projectmallard.org/1.0/";
+      xmlns:api="http://projectmallard.org/experimental/api/";
+      xmlns:ui="http://projectmallard.org/1.0/ui/";>
+  <info>
+    <link xref="index" group="function" type="guide"/>
+    <api:function>
+      <api:returns>
+        <api:type>void</api:type>
+      </api:returns>
+      <api:name>regress_test_array_static_in_int</api:name>
+      <api:arg>
+        <api:type>Array(Number(gint))</api:type>
+        <api:name>x</api:name>
+      </api:arg>
+    </api:function>
+  </info>
+  <title>Regress.test_array_static_in_int</title>
+  <synopsis><code mime="text/x-gjs">
+function test_array_static_in_int(x: Array(Number(gint))): void {
+    // Gjs wrapper for regress_test_array_static_in_int()
+}
+  </code></synopsis>
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+  <p>a list of 10 integers</p>
+</item>
+</terms>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_static_in_int.page 
b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_static_in_int.page
new file mode 100644
index 00000000..bf7d653d
--- /dev/null
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.test_array_static_in_int.page
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<page id="Regress.test_array_static_in_int"
+      type="topic"
+      style="function"
+      xmlns="http://projectmallard.org/1.0/";
+      xmlns:api="http://projectmallard.org/experimental/api/";
+      xmlns:ui="http://projectmallard.org/1.0/ui/";>
+  <info>
+    <link xref="index" group="function" type="guide"/>
+    <api:function>
+      <api:returns>
+        <api:type>none</api:type>
+      </api:returns>
+      <api:name>regress_test_array_static_in_int</api:name>
+      <api:arg>
+        <api:type>[int]</api:type>
+        <api:name>x</api:name>
+      </api:arg>
+    </api:function>
+  </info>
+  <title>Regress.test_array_static_in_int</title>
+  <synopsis><code mime="text/x-python">
+@accepts([int])
+@returns(none)
+def test_array_static_in_int(x):
+    # Python wrapper for regress_test_array_static_in_int()
+  </code></synopsis>
+
+
+<terms>
+<item>
+<title><code>x</code></title>
+  <p>a list of 10 integers</p>
+</item>
+</terms>
+
+</page>
diff --git a/tests/scanner/Regress-1.0-expected.gir b/tests/scanner/Regress-1.0-expected.gir
index a589b82c..872a2a3b 100644
--- a/tests/scanner/Regress-1.0-expected.gir
+++ b/tests/scanner/Regress-1.0-expected.gir
@@ -18,8 +18,8 @@ and/or use gtk-doc annotations.  -->
     <alias name="AliasedTestBoxed" c:type="RegressAliasedTestBoxed">
       <doc xml:space="preserve"
            filename="regress.h"
-           line="1381">Typedef TestBoxed to test caller-allocates correctness</doc>
-      <source-position filename="regress.h" line="1386"/>
+           line="1388">Typedef TestBoxed to test caller-allocates correctness</doc>
+      <source-position filename="regress.h" line="1393"/>
       <type name="TestBoxed" c:type="RegressTestBoxed"/>
     </alias>
     <alias name="FooObjectCookie" c:type="RegressFooObjectCookie">
@@ -33,15 +33,15 @@ and/or use gtk-doc annotations.  -->
     <alias name="IntsetAlias" c:type="RegressIntsetAlias" introspectable="0">
       <doc xml:space="preserve"
            filename="regress.h"
-           line="1351">Compatibility typedef, like telepathy-glib's TpIntSet</doc>
-      <source-position filename="regress.h" line="1357"/>
+           line="1358">Compatibility typedef, like telepathy-glib's TpIntSet</doc>
+      <source-position filename="regress.h" line="1364"/>
       <type name="Intset" c:type="RegressIntset"/>
     </alias>
     <alias name="PtrArrayAlias" c:type="RegressPtrArrayAlias">
       <doc xml:space="preserve"
            filename="regress.h"
-           line="1359">Typedef'd GPtrArray for some reason</doc>
-      <source-position filename="regress.h" line="1364"/>
+           line="1366">Typedef'd GPtrArray for some reason</doc>
+      <source-position filename="regress.h" line="1371"/>
       <type name="GLib.PtrArray" c:type="GPtrArray"/>
     </alias>
     <alias name="TestTypeGUInt64" c:type="RegressTestTypeGUInt64">
@@ -51,8 +51,8 @@ and/or use gtk-doc annotations.  -->
     <alias name="VaListAlias" c:type="RegressVaListAlias" introspectable="0">
       <doc xml:space="preserve"
            filename="regress.h"
-           line="1370">Typedef'd va_list for additional reasons</doc>
-      <source-position filename="regress.h" line="1375"/>
+           line="1377">Typedef'd va_list for additional reasons</doc>
+      <source-position filename="regress.h" line="1382"/>
       <type name="va_list" c:type="va_list"/>
     </alias>
     <constant name="ANNOTATION_CALCULATED_DEFINE"
@@ -92,12 +92,12 @@ and/or use gtk-doc annotations.  -->
       </member>
     </enumeration>
     <record name="AnAnonymousUnion" c:type="RegressAnAnonymousUnion">
-      <source-position filename="regress.h" line="1487"/>
+      <source-position filename="regress.h" line="1494"/>
       <field name="x" writable="1">
         <type name="gint" c:type="int"/>
       </field>
       <union>
-        <source-position filename="regress.h" line="1486"/>
+        <source-position filename="regress.h" line="1493"/>
         <field name="a" writable="1">
           <array zero-terminated="0" fixed-size="2">
             <type name="LikeGnomeKeyringPasswordSchema"
@@ -1214,14 +1214,14 @@ it says it's pointer but it's actually a string.</doc>
     </record>
     <record name="AnonymousUnionAndStruct"
             c:type="RegressAnonymousUnionAndStruct">
-      <source-position filename="regress.h" line="1500"/>
+      <source-position filename="regress.h" line="1507"/>
       <field name="x" writable="1">
         <type name="gint" c:type="int"/>
       </field>
       <union>
-        <source-position filename="regress.h" line="1499"/>
+        <source-position filename="regress.h" line="1506"/>
         <record>
-          <source-position filename="regress.h" line="1496"/>
+          <source-position filename="regress.h" line="1503"/>
           <field name="a" writable="1">
             <type name="LikeGnomeKeyringPasswordSchema"
                   c:type="RegressLikeGnomeKeyringPasswordSchema*"/>
@@ -2582,13 +2582,13 @@ exposed to language bindings.</doc>
     <constant name="GI_SCANNER_ELSE"
               value="3"
               c:type="REGRESS_GI_SCANNER_ELSE">
-      <source-position filename="regress.h" line="1464"/>
+      <source-position filename="regress.h" line="1471"/>
       <type name="gint" c:type="gint"/>
     </constant>
     <constant name="GI_SCANNER_IFDEF"
               value="3"
               c:type="REGRESS_GI_SCANNER_IFDEF">
-      <source-position filename="regress.h" line="1468"/>
+      <source-position filename="regress.h" line="1475"/>
       <type name="gint" c:type="gint"/>
     </constant>
     <constant name="GUINT64_CONSTANT"
@@ -2616,18 +2616,18 @@ exposed to language bindings.</doc>
     <record name="Intset" c:type="RegressIntset" disguised="1">
       <doc xml:space="preserve"
            filename="regress.h"
-           line="1343">Like telepathy-glib's TpIntset.</doc>
-      <source-position filename="regress.h" line="1349"/>
+           line="1350">Like telepathy-glib's TpIntset.</doc>
+      <source-position filename="regress.h" line="1356"/>
     </record>
     <constant name="LONG_STRING_CONSTANT"
               
value="TYPE,VALUE,ENCODING,CHARSET,LANGUAGE,DOM,INTL,POSTAL,PARCEL,HOME,WORK,PREF,VOICE,FAX,MSG,CELL,PAGER,BBS,MODEM,CAR,ISDN,VIDEO,AOL,APPLELINK,ATTMAIL,CIS,EWORLD,INTERNET,IBMMAIL,MCIMAIL,POWERSHARE,PRODIGY,TLX,X400,GIF,CGM,WMF,BMP,MET,PMB,DIB,PICT,TIFF,PDF,PS,JPEG,QTIME,MPEG,MPEG2,AVI,WAVE,AIFF,PCM,X509,PGP"
               c:type="REGRESS_LONG_STRING_CONSTANT">
-      <source-position filename="regress.h" line="1435"/>
+      <source-position filename="regress.h" line="1442"/>
       <type name="utf8" c:type="gchar*"/>
     </constant>
     <record name="LikeGnomeKeyringPasswordSchema"
             c:type="RegressLikeGnomeKeyringPasswordSchema">
-      <source-position filename="regress.h" line="1454"/>
+      <source-position filename="regress.h" line="1461"/>
       <field name="dummy" writable="1">
         <type name="gint" c:type="int"/>
       </field>
@@ -2641,7 +2641,7 @@ exposed to language bindings.</doc>
       </field>
     </record>
     <record name="LikeXklConfigItem" c:type="RegressLikeXklConfigItem">
-      <source-position filename="regress.h" line="1421"/>
+      <source-position filename="regress.h" line="1428"/>
       <field name="name" writable="1">
         <array zero-terminated="0" fixed-size="32">
           <type name="gchar" c:type="gchar"/>
@@ -2649,7 +2649,7 @@ exposed to language bindings.</doc>
       </field>
       <method name="set_name"
               c:identifier="regress_like_xkl_config_item_set_name">
-        <source-position filename="regress.h" line="1425"/>
+        <source-position filename="regress.h" line="1432"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -2666,13 +2666,13 @@ exposed to language bindings.</doc>
     <constant name="MAXUINT64"
               value="18446744073709551615"
               c:type="REGRESS_MAXUINT64">
-      <source-position filename="regress.h" line="1458"/>
+      <source-position filename="regress.h" line="1465"/>
       <type name="guint64" c:type="guint64"/>
     </constant>
     <constant name="MININT64"
               value="-9223372036854775808"
               c:type="REGRESS_MININT64">
-      <source-position filename="regress.h" line="1457"/>
+      <source-position filename="regress.h" line="1464"/>
       <type name="gint64" c:type="gint64"/>
     </constant>
     <constant name="Mixed_Case_Constant"
@@ -2698,9 +2698,9 @@ exposed to language bindings.</doc>
             introspectable="0">
       <doc xml:space="preserve"
            filename="regress.h"
-           line="1325">This should be skipped, and moreover, all function which
+           line="1332">This should be skipped, and moreover, all function which
 use it should be.</doc>
-      <source-position filename="regress.h" line="1335"/>
+      <source-position filename="regress.h" line="1342"/>
       <field name="x" writable="1">
         <type name="gint" c:type="int"/>
       </field>
@@ -2711,7 +2711,7 @@ use it should be.</doc>
     <function-macro name="TEST_FLOATING"
                     c:identifier="REGRESS_TEST_FLOATING"
                     introspectable="0">
-      <source-position filename="regress.h" line="1253"/>
+      <source-position filename="regress.h" line="1260"/>
       <parameters>
         <parameter name="object">
         </parameter>
@@ -2720,7 +2720,7 @@ use it should be.</doc>
     <function-macro name="TEST_FLOATING_GET_CLASS"
                     c:identifier="REGRESS_TEST_FLOATING_GET_CLASS"
                     introspectable="0">
-      <source-position filename="regress.h" line="1255"/>
+      <source-position filename="regress.h" line="1262"/>
       <parameters>
         <parameter name="obj">
         </parameter>
@@ -2729,7 +2729,7 @@ use it should be.</doc>
     <function-macro name="TEST_FUNDAMENTAL_OBJECT"
                     c:identifier="REGRESS_TEST_FUNDAMENTAL_OBJECT"
                     introspectable="0">
-      <source-position filename="regress.h" line="1007"/>
+      <source-position filename="regress.h" line="1014"/>
       <parameters>
         <parameter name="obj">
         </parameter>
@@ -2738,7 +2738,7 @@ use it should be.</doc>
     <function-macro name="TEST_FUNDAMENTAL_OBJECT_CAST"
                     c:identifier="REGRESS_TEST_FUNDAMENTAL_OBJECT_CAST"
                     introspectable="0">
-      <source-position filename="regress.h" line="1009"/>
+      <source-position filename="regress.h" line="1016"/>
       <parameters>
         <parameter name="obj">
         </parameter>
@@ -2747,7 +2747,7 @@ use it should be.</doc>
     <function-macro name="TEST_FUNDAMENTAL_OBJECT_CLASS"
                     c:identifier="REGRESS_TEST_FUNDAMENTAL_OBJECT_CLASS"
                     introspectable="0">
-      <source-position filename="regress.h" line="1008"/>
+      <source-position filename="regress.h" line="1015"/>
       <parameters>
         <parameter name="klass">
         </parameter>
@@ -2756,7 +2756,7 @@ use it should be.</doc>
     <function-macro name="TEST_FUNDAMENTAL_OBJECT_GET_CLASS"
                     c:identifier="REGRESS_TEST_FUNDAMENTAL_OBJECT_GET_CLASS"
                     introspectable="0">
-      <source-position filename="regress.h" line="1006"/>
+      <source-position filename="regress.h" line="1013"/>
       <parameters>
         <parameter name="obj">
         </parameter>
@@ -2765,7 +2765,7 @@ use it should be.</doc>
     <function-macro name="TEST_GNUC_EXTENSION_STMT"
                     c:identifier="REGRESS_TEST_GNUC_EXTENSION_STMT"
                     introspectable="0">
-      <source-position filename="regress.h" line="1431"/>
+      <source-position filename="regress.h" line="1438"/>
       <parameters>
         <parameter name="foo">
         </parameter>
@@ -2774,7 +2774,7 @@ use it should be.</doc>
     <function-macro name="TEST_INTERFACE"
                     c:identifier="REGRESS_TEST_INTERFACE"
                     introspectable="0">
-      <source-position filename="regress.h" line="1201"/>
+      <source-position filename="regress.h" line="1208"/>
       <parameters>
         <parameter name="object">
         </parameter>
@@ -2783,7 +2783,7 @@ use it should be.</doc>
     <function-macro name="TEST_INTERFACE_GET_IFACE"
                     c:identifier="REGRESS_TEST_INTERFACE_GET_IFACE"
                     introspectable="0">
-      <source-position filename="regress.h" line="1203"/>
+      <source-position filename="regress.h" line="1210"/>
       <parameters>
         <parameter name="obj">
         </parameter>
@@ -2792,7 +2792,7 @@ use it should be.</doc>
     <function-macro name="TEST_IS_FLOATING"
                     c:identifier="REGRESS_TEST_IS_FLOATING"
                     introspectable="0">
-      <source-position filename="regress.h" line="1254"/>
+      <source-position filename="regress.h" line="1261"/>
       <parameters>
         <parameter name="object">
         </parameter>
@@ -2801,7 +2801,7 @@ use it should be.</doc>
     <function-macro name="TEST_IS_FUNDAMENTAL_OBJECT"
                     c:identifier="REGRESS_TEST_IS_FUNDAMENTAL_OBJECT"
                     introspectable="0">
-      <source-position filename="regress.h" line="1004"/>
+      <source-position filename="regress.h" line="1011"/>
       <parameters>
         <parameter name="obj">
         </parameter>
@@ -2810,7 +2810,7 @@ use it should be.</doc>
     <function-macro name="TEST_IS_FUNDAMENTAL_OBJECT_CLASS"
                     c:identifier="REGRESS_TEST_IS_FUNDAMENTAL_OBJECT_CLASS"
                     introspectable="0">
-      <source-position filename="regress.h" line="1005"/>
+      <source-position filename="regress.h" line="1012"/>
       <parameters>
         <parameter name="klass">
         </parameter>
@@ -2819,7 +2819,7 @@ use it should be.</doc>
     <function-macro name="TEST_IS_INTERFACE"
                     c:identifier="REGRESS_TEST_IS_INTERFACE"
                     introspectable="0">
-      <source-position filename="regress.h" line="1202"/>
+      <source-position filename="regress.h" line="1209"/>
       <parameters>
         <parameter name="object">
         </parameter>
@@ -2837,7 +2837,7 @@ use it should be.</doc>
     <function-macro name="TEST_IS_SUB_OBJECT"
                     c:identifier="REGRESS_TEST_IS_SUB_OBJECT"
                     introspectable="0">
-      <source-position filename="regress.h" line="970"/>
+      <source-position filename="regress.h" line="977"/>
       <parameters>
         <parameter name="object">
         </parameter>
@@ -2846,7 +2846,7 @@ use it should be.</doc>
     <function-macro name="TEST_IS_WI_802_1X"
                     c:identifier="REGRESS_TEST_IS_WI_802_1X"
                     introspectable="0">
-      <source-position filename="regress.h" line="1220"/>
+      <source-position filename="regress.h" line="1227"/>
       <parameters>
         <parameter name="object">
         </parameter>
@@ -2873,7 +2873,7 @@ use it should be.</doc>
     <function-macro name="TEST_SUB_OBJECT"
                     c:identifier="REGRESS_TEST_SUB_OBJECT"
                     introspectable="0">
-      <source-position filename="regress.h" line="969"/>
+      <source-position filename="regress.h" line="976"/>
       <parameters>
         <parameter name="object">
         </parameter>
@@ -2882,7 +2882,7 @@ use it should be.</doc>
     <function-macro name="TEST_SUB_OBJ_GET_CLASS"
                     c:identifier="REGRESS_TEST_SUB_OBJ_GET_CLASS"
                     introspectable="0">
-      <source-position filename="regress.h" line="971"/>
+      <source-position filename="regress.h" line="978"/>
       <parameters>
         <parameter name="obj">
         </parameter>
@@ -2891,7 +2891,7 @@ use it should be.</doc>
     <function-macro name="TEST_VALUE_HOLDS_FUNDAMENTAL_OBJECT"
                     c:identifier="REGRESS_TEST_VALUE_HOLDS_FUNDAMENTAL_OBJECT"
                     introspectable="0">
-      <source-position filename="regress.h" line="1044"/>
+      <source-position filename="regress.h" line="1051"/>
       <parameters>
         <parameter name="value">
         </parameter>
@@ -2900,7 +2900,7 @@ use it should be.</doc>
     <function-macro name="TEST_WI_802_1X"
                     c:identifier="REGRESS_TEST_WI_802_1X"
                     introspectable="0">
-      <source-position filename="regress.h" line="1219"/>
+      <source-position filename="regress.h" line="1226"/>
       <parameters>
         <parameter name="object">
         </parameter>
@@ -2909,7 +2909,7 @@ use it should be.</doc>
     <function-macro name="TEST_WI_802_1X_GET_CLASS"
                     c:identifier="REGRESS_TEST_WI_802_1X_GET_CLASS"
                     introspectable="0">
-      <source-position filename="regress.h" line="1221"/>
+      <source-position filename="regress.h" line="1228"/>
       <parameters>
         <parameter name="obj">
         </parameter>
@@ -3157,13 +3157,13 @@ use it should be.</doc>
       <source-position filename="regress.h" line="666"/>
     </record>
     <callback name="TestCallback" c:type="RegressTestCallback">
-      <source-position filename="regress.h" line="1081"/>
+      <source-position filename="regress.h" line="1088"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
     </callback>
     <callback name="TestCallbackArray" c:type="RegressTestCallbackArray">
-      <source-position filename="regress.h" line="1113"/>
+      <source-position filename="regress.h" line="1120"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -3188,7 +3188,7 @@ use it should be.</doc>
     </callback>
     <callback name="TestCallbackArrayInOut"
               c:type="RegressTestCallbackArrayInOut">
-      <source-position filename="regress.h" line="1119"/>
+      <source-position filename="regress.h" line="1126"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -3210,7 +3210,7 @@ use it should be.</doc>
       </parameters>
     </callback>
     <callback name="TestCallbackFull" c:type="RegressTestCallbackFull">
-      <source-position filename="regress.h" line="1100"/>
+      <source-position filename="regress.h" line="1107"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -3218,25 +3218,25 @@ use it should be.</doc>
         <parameter name="foo" transfer-ownership="none">
           <doc xml:space="preserve"
                filename="regress.h"
-               line="1096">the investment rate</doc>
+               line="1103">the investment rate</doc>
           <type name="gint" c:type="int"/>
         </parameter>
         <parameter name="bar" transfer-ownership="none">
           <doc xml:space="preserve"
                filename="regress.h"
-               line="1097">how much money</doc>
+               line="1104">how much money</doc>
           <type name="gdouble" c:type="double"/>
         </parameter>
         <parameter name="path" transfer-ownership="none">
           <doc xml:space="preserve"
                filename="regress.h"
-               line="1098">Path to file</doc>
+               line="1105">Path to file</doc>
           <type name="filename" c:type="char*"/>
         </parameter>
       </parameters>
     </callback>
     <callback name="TestCallbackGError" c:type="RegressTestCallbackGError">
-      <source-position filename="regress.h" line="1088"/>
+      <source-position filename="regress.h" line="1095"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -3248,7 +3248,7 @@ use it should be.</doc>
     </callback>
     <callback name="TestCallbackHashtable"
               c:type="RegressTestCallbackHashtable">
-      <source-position filename="regress.h" line="1087"/>
+      <source-position filename="regress.h" line="1094"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -3256,7 +3256,7 @@ use it should be.</doc>
         <parameter name="data" transfer-ownership="none">
           <doc xml:space="preserve"
                filename="regress.h"
-               line="1085">a hash table; will be modified</doc>
+               line="1092">a hash table; will be modified</doc>
           <type name="GLib.HashTable" c:type="GHashTable*">
             <type name="utf8"/>
             <type name="gint"/>
@@ -3266,7 +3266,7 @@ use it should be.</doc>
     </callback>
     <callback name="TestCallbackOwnedGError"
               c:type="RegressTestCallbackOwnedGError">
-      <source-position filename="regress.h" line="1093"/>
+      <source-position filename="regress.h" line="1100"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -3274,20 +3274,20 @@ use it should be.</doc>
         <parameter name="error" transfer-ownership="full">
           <doc xml:space="preserve"
                filename="regress.h"
-               line="1091">GError instance; must be freed by the callback</doc>
+               line="1098">GError instance; must be freed by the callback</doc>
           <type name="GLib.Error" c:type="GError*"/>
         </parameter>
       </parameters>
     </callback>
     <callback name="TestCallbackReturnFull"
               c:type="RegressTestCallbackReturnFull">
-      <source-position filename="regress.h" line="1105"/>
+      <source-position filename="regress.h" line="1112"/>
       <return-value transfer-ownership="full">
         <type name="TestObj" c:type="RegressTestObj*"/>
       </return-value>
     </callback>
     <callback name="TestCallbackUserData" c:type="RegressTestCallbackUserData">
-      <source-position filename="regress.h" line="1082"/>
+      <source-position filename="regress.h" line="1089"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -3456,13 +3456,13 @@ use it should be.</doc>
            glib:type-name="RegressTestFloating"
            glib:get-type="regress_test_floating_get_type"
            glib:type-struct="TestFloatingClass">
-      <source-position filename="regress.h" line="1265"/>
+      <source-position filename="regress.h" line="1272"/>
       <constructor name="new" c:identifier="regress_test_floating_new">
-        <source-position filename="regress.h" line="1272"/>
+        <source-position filename="regress.h" line="1279"/>
         <return-value transfer-ownership="none">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="4267">A new floating #RegressTestFloating</doc>
+               line="4283">A new floating #RegressTestFloating</doc>
           <type name="TestFloating" c:type="RegressTestFloating*"/>
         </return-value>
       </constructor>
@@ -3473,7 +3473,7 @@ use it should be.</doc>
     <record name="TestFloatingClass"
             c:type="RegressTestFloatingClass"
             glib:is-gtype-struct-for="TestFloating">
-      <source-position filename="regress.h" line="1265"/>
+      <source-position filename="regress.h" line="1272"/>
       <field name="parent_class">
         <type name="GObject.InitiallyUnownedClass"
               c:type="GInitiallyUnownedClass"/>
@@ -3491,9 +3491,9 @@ use it should be.</doc>
            glib:unref-func="regress_test_fundamental_object_unref"
            glib:set-value-func="regress_test_value_set_fundamental_object"
            glib:get-value-func="regress_test_value_get_fundamental_object">
-      <source-position filename="regress.h" line="1033"/>
+      <source-position filename="regress.h" line="1040"/>
       <virtual-method name="copy">
-        <source-position filename="regress.h" line="1018"/>
+        <source-position filename="regress.h" line="1025"/>
         <return-value transfer-ownership="full">
           <type name="TestFundamentalObject"
                 c:type="RegressTestFundamentalObject*"/>
@@ -3506,7 +3506,7 @@ use it should be.</doc>
         </parameters>
       </virtual-method>
       <virtual-method name="finalize">
-        <source-position filename="regress.h" line="1019"/>
+        <source-position filename="regress.h" line="1026"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -3518,11 +3518,11 @@ use it should be.</doc>
         </parameters>
       </virtual-method>
       <method name="ref" c:identifier="regress_test_fundamental_object_ref">
-        <source-position filename="regress.h" line="1039"/>
+        <source-position filename="regress.h" line="1046"/>
         <return-value transfer-ownership="full">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="3384">A new #RegressTestFundamentalObject</doc>
+               line="3400">A new #RegressTestFundamentalObject</doc>
           <type name="TestFundamentalObject"
                 c:type="RegressTestFundamentalObject*"/>
         </return-value>
@@ -3536,7 +3536,7 @@ use it should be.</doc>
       </method>
       <method name="unref"
               c:identifier="regress_test_fundamental_object_unref">
-        <source-position filename="regress.h" line="1042"/>
+        <source-position filename="regress.h" line="1049"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -3561,7 +3561,7 @@ use it should be.</doc>
     <record name="TestFundamentalObjectClass"
             c:type="RegressTestFundamentalObjectClass"
             glib:is-gtype-struct-for="TestFundamentalObject">
-      <source-position filename="regress.h" line="1033"/>
+      <source-position filename="regress.h" line="1040"/>
       <field name="type_class">
         <type name="GObject.TypeClass" c:type="GTypeClass"/>
       </field>
@@ -3576,7 +3576,7 @@ use it should be.</doc>
     </record>
     <callback name="TestFundamentalObjectCopyFunction"
               c:type="RegressTestFundamentalObjectCopyFunction">
-      <source-position filename="regress.h" line="1018"/>
+      <source-position filename="regress.h" line="1025"/>
       <return-value transfer-ownership="full">
         <type name="TestFundamentalObject"
               c:type="RegressTestFundamentalObject*"/>
@@ -3590,7 +3590,7 @@ use it should be.</doc>
     </callback>
     <callback name="TestFundamentalObjectFinalizeFunction"
               c:type="RegressTestFundamentalObjectFinalizeFunction">
-      <source-position filename="regress.h" line="1019"/>
+      <source-position filename="regress.h" line="1026"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -3609,10 +3609,10 @@ use it should be.</doc>
            glib:get-type="regress_test_fundamental_sub_object_get_type"
            glib:type-struct="TestFundamentalSubObjectClass"
            glib:fundamental="1">
-      <source-position filename="regress.h" line="1063"/>
+      <source-position filename="regress.h" line="1070"/>
       <constructor name="new"
                    c:identifier="regress_test_fundamental_sub_object_new">
-        <source-position filename="regress.h" line="1072"/>
+        <source-position filename="regress.h" line="1079"/>
         <return-value transfer-ownership="full">
           <type name="TestFundamentalSubObject"
                 c:type="RegressTestFundamentalSubObject*"/>
@@ -3634,7 +3634,7 @@ use it should be.</doc>
     <record name="TestFundamentalSubObjectClass"
             c:type="RegressTestFundamentalSubObjectClass"
             glib:is-gtype-struct-for="TestFundamentalSubObject">
-      <source-position filename="regress.h" line="1063"/>
+      <source-position filename="regress.h" line="1070"/>
       <field name="fundamental_object_class">
         <type name="TestFundamentalObjectClass"
               c:type="RegressTestFundamentalObjectClass"/>
@@ -3758,10 +3758,10 @@ use it should be.</doc>
                glib:type-name="RegressTestInterface"
                glib:get-type="regress_test_interface_get_type"
                glib:type-struct="TestInterfaceIface">
-      <source-position filename="regress.h" line="1209"/>
+      <source-position filename="regress.h" line="1216"/>
       <method name="emit_signal"
               c:identifier="regress_test_interface_emit_signal">
-        <source-position filename="regress.h" line="1215"/>
+        <source-position filename="regress.h" line="1222"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -3769,7 +3769,7 @@ use it should be.</doc>
           <instance-parameter name="self" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="4126">the object to emit the signal</doc>
+                 line="4142">the object to emit the signal</doc>
             <type name="TestInterface" c:type="RegressTestInterface*"/>
           </instance-parameter>
         </parameters>
@@ -3788,7 +3788,7 @@ use it should be.</doc>
           <parameter name="ptr" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="4107">the code must look up the signal with
+                 line="4123">the code must look up the signal with
   g_interface_info_find_signal() in order to get this to work.</doc>
             <type name="gint" c:type="gpointer"/>
           </parameter>
@@ -3798,13 +3798,13 @@ use it should be.</doc>
     <record name="TestInterfaceIface"
             c:type="RegressTestInterfaceIface"
             glib:is-gtype-struct-for="TestInterface">
-      <source-position filename="regress.h" line="1209"/>
+      <source-position filename="regress.h" line="1216"/>
       <field name="base_iface">
         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
       </field>
     </record>
     <callback name="TestNoPtrCallback" c:type="RegressTestNoPtrCallback">
-      <source-position filename="regress.h" line="1080"/>
+      <source-position filename="regress.h" line="1087"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -3832,14 +3832,14 @@ use it should be.</doc>
           <parameter name="obj" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="2791">A #RegressTestObj</doc>
+                 line="2807">A #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </parameter>
         </parameters>
       </constructor>
       <constructor name="new_callback"
                    c:identifier="regress_test_obj_new_callback">
-        <source-position filename="regress.h" line="1177"/>
+        <source-position filename="regress.h" line="1184"/>
         <return-value transfer-ownership="full">
           <type name="TestObj" c:type="RegressTestObj*"/>
         </return-value>
@@ -3877,7 +3877,7 @@ use it should be.</doc>
         </parameters>
       </constructor>
       <function name="null_out" c:identifier="regress_test_obj_null_out">
-        <source-position filename="regress.h" line="953"/>
+        <source-position filename="regress.h" line="960"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -3890,7 +3890,7 @@ use it should be.</doc>
                      allow-none="1">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3203">A #RegressTestObj</doc>
+                 line="3219">A #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj**"/>
           </parameter>
         </parameters>
@@ -3909,7 +3909,7 @@ use it should be.</doc>
       </function>
       <function name="static_method_callback"
                 c:identifier="regress_test_obj_static_method_callback">
-        <source-position filename="regress.h" line="1174"/>
+        <source-position filename="regress.h" line="1181"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -3960,7 +3960,7 @@ use it should be.</doc>
       <virtual-method name="matrix" invoker="do_matrix">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="3177">This method is virtual.  Notably its name differs from the virtual
+             line="3193">This method is virtual.  Notably its name differs from the virtual
 slot name, which makes it useful for testing bindings handle this
 case.</doc>
         <source-position filename="regress.h" line="797"/>
@@ -3971,13 +3971,13 @@ case.</doc>
           <instance-parameter name="obj" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3179">A #RegressTestObj</doc>
+                 line="3195">A #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
           <parameter name="somestr" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3180">Meaningless string</doc>
+                 line="3196">Meaningless string</doc>
             <type name="utf8" c:type="const char*"/>
           </parameter>
         </parameters>
@@ -3985,10 +3985,10 @@ case.</doc>
       <method name="do_matrix" c:identifier="regress_test_obj_do_matrix">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="3177">This method is virtual.  Notably its name differs from the virtual
+             line="3193">This method is virtual.  Notably its name differs from the virtual
 slot name, which makes it useful for testing bindings handle this
 case.</doc>
-        <source-position filename="regress.h" line="946"/>
+        <source-position filename="regress.h" line="953"/>
         <return-value transfer-ownership="none">
           <type name="gint" c:type="int"/>
         </return-value>
@@ -3996,13 +3996,13 @@ case.</doc>
           <instance-parameter name="obj" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3179">A #RegressTestObj</doc>
+                 line="3195">A #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
           <parameter name="somestr" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3180">Meaningless string</doc>
+                 line="3196">Meaningless string</doc>
             <type name="utf8" c:type="const char*"/>
           </parameter>
         </parameters>
@@ -4029,7 +4029,7 @@ case.</doc>
           <instance-parameter name="self" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="2898">The object to emit the signal.</doc>
+                 line="2914">The object to emit the signal.</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
         </parameters>
@@ -4050,7 +4050,7 @@ case.</doc>
               c:identifier="regress_test_obj_emit_sig_with_inout_int">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="2882">The signal handler must increment the inout parameter by 1.</doc>
+             line="2898">The signal handler must increment the inout parameter by 1.</doc>
         <source-position filename="regress.h" line="846"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
@@ -4059,7 +4059,7 @@ case.</doc>
           <instance-parameter name="obj" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="2884">The object to emit the signal.</doc>
+                 line="2900">The object to emit the signal.</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
         </parameters>
@@ -4086,7 +4086,7 @@ case.</doc>
           <instance-parameter name="self" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="2911">The object to emit the signal.</doc>
+                 line="2927">The object to emit the signal.</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
         </parameters>
@@ -4124,7 +4124,7 @@ case.</doc>
           <instance-parameter name="obj" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="2944">A #RegressTestObj</doc>
+                 line="2960">A #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
         </parameters>
@@ -4143,7 +4143,7 @@ case.</doc>
       </method>
       <method name="instance_method_callback"
               c:identifier="regress_test_obj_instance_method_callback">
-        <source-position filename="regress.h" line="1171"/>
+        <source-position filename="regress.h" line="1178"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -4174,7 +4174,7 @@ case.</doc>
       </method>
       <method name="name_conflict"
               c:identifier="regress_test_obj_name_conflict">
-        <source-position filename="regress.h" line="965"/>
+        <source-position filename="regress.h" line="972"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -4182,14 +4182,14 @@ case.</doc>
           <instance-parameter name="obj" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3247">A #RegressTestObj</doc>
+                 line="3263">A #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
         </parameters>
       </method>
       <method name="not_nullable_element_typed_gpointer_in"
               c:identifier="regress_test_obj_not_nullable_element_typed_gpointer_in">
-        <source-position filename="regress.h" line="960"/>
+        <source-position filename="regress.h" line="967"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -4197,13 +4197,13 @@ case.</doc>
           <instance-parameter name="obj" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3234">A #RegressTestObj</doc>
+                 line="3250">A #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
           <parameter name="input" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3235">some uint8 array</doc>
+                 line="3251">some uint8 array</doc>
             <array length="1" zero-terminated="0" c:type="gpointer">
               <type name="guint8"/>
             </array>
@@ -4211,14 +4211,14 @@ case.</doc>
           <parameter name="count" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3236">length of @input</doc>
+                 line="3252">length of @input</doc>
             <type name="guint" c:type="guint"/>
           </parameter>
         </parameters>
       </method>
       <method name="not_nullable_typed_gpointer_in"
               c:identifier="regress_test_obj_not_nullable_typed_gpointer_in">
-        <source-position filename="regress.h" line="957"/>
+        <source-position filename="regress.h" line="964"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -4226,13 +4226,13 @@ case.</doc>
           <instance-parameter name="obj" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3223">A #RegressTestObj</doc>
+                 line="3239">A #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
           <parameter name="input" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3224">some #GObject</doc>
+                 line="3240">some #GObject</doc>
             <type name="GObject.Object" c:type="gpointer"/>
           </parameter>
         </parameters>
@@ -4259,25 +4259,25 @@ case.</doc>
               throws="1">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="3141">Check that the out value is skipped</doc>
-        <source-position filename="regress.h" line="934"/>
+             line="3157">Check that the out value is skipped</doc>
+        <source-position filename="regress.h" line="941"/>
         <return-value transfer-ownership="none">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="3155">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
+               line="3171">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="obj" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3143">A #RegressTestObj.</doc>
+                 line="3159">A #RegressTestObj.</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
           <parameter name="a" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3144">Parameter.</doc>
+                 line="3160">Parameter.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
           <parameter name="out_b"
@@ -4286,13 +4286,13 @@ case.</doc>
                      transfer-ownership="full">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3145">Return value.</doc>
+                 line="3161">Return value.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="c" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3146">Other parameter.</doc>
+                 line="3162">Other parameter.</doc>
             <type name="gdouble" c:type="gdouble"/>
           </parameter>
           <parameter name="inout_d"
@@ -4302,7 +4302,7 @@ case.</doc>
                      skip="1">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3147">Will be incremented.</doc>
+                 line="3163">Will be incremented.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="out_sum"
@@ -4311,19 +4311,19 @@ case.</doc>
                      transfer-ownership="full">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3148">Return value.</doc>
+                 line="3164">Return value.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="num1" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3149">Number.</doc>
+                 line="3165">Number.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
           <parameter name="num2" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3150">Number.</doc>
+                 line="3166">Number.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
         </parameters>
@@ -4333,25 +4333,25 @@ case.</doc>
               throws="1">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="3105">Check that the out value is skipped</doc>
-        <source-position filename="regress.h" line="922"/>
+             line="3121">Check that the out value is skipped</doc>
+        <source-position filename="regress.h" line="929"/>
         <return-value transfer-ownership="none">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="3119">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
+               line="3135">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="obj" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3107">A #RegressTestObj.</doc>
+                 line="3123">A #RegressTestObj.</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
           <parameter name="a" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3108">Parameter.</doc>
+                 line="3124">Parameter.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
           <parameter name="out_b"
@@ -4361,13 +4361,13 @@ case.</doc>
                      skip="1">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3109">Return value.</doc>
+                 line="3125">Return value.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="c" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3110">Other parameter.</doc>
+                 line="3126">Other parameter.</doc>
             <type name="gdouble" c:type="gdouble"/>
           </parameter>
           <parameter name="inout_d"
@@ -4376,7 +4376,7 @@ case.</doc>
                      transfer-ownership="full">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3111">Will be incremented.</doc>
+                 line="3127">Will be incremented.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="out_sum"
@@ -4385,19 +4385,19 @@ case.</doc>
                      transfer-ownership="full">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3112">Return value.</doc>
+                 line="3128">Return value.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="num1" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3113">Number.</doc>
+                 line="3129">Number.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
           <parameter name="num2" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3114">Number.</doc>
+                 line="3130">Number.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
         </parameters>
@@ -4407,25 +4407,25 @@ case.</doc>
               throws="1">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="3069">Check that a parameter is skipped</doc>
-        <source-position filename="regress.h" line="910"/>
+             line="3085">Check that a parameter is skipped</doc>
+        <source-position filename="regress.h" line="917"/>
         <return-value transfer-ownership="none">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="3083">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
+               line="3099">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="obj" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3071">A #RegressTestObj.</doc>
+                 line="3087">A #RegressTestObj.</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
           <parameter name="a" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3072">Parameter.</doc>
+                 line="3088">Parameter.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
           <parameter name="out_b"
@@ -4434,13 +4434,13 @@ case.</doc>
                      transfer-ownership="full">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3073">Return value.</doc>
+                 line="3089">Return value.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="c" transfer-ownership="none" skip="1">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3074">Other parameter.</doc>
+                 line="3090">Other parameter.</doc>
             <type name="gdouble" c:type="gdouble"/>
           </parameter>
           <parameter name="inout_d"
@@ -4449,7 +4449,7 @@ case.</doc>
                      transfer-ownership="full">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3075">Will be incremented.</doc>
+                 line="3091">Will be incremented.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="out_sum"
@@ -4458,19 +4458,19 @@ case.</doc>
                      transfer-ownership="full">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3076">Return value.</doc>
+                 line="3092">Return value.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="num1" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3077">Number.</doc>
+                 line="3093">Number.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
           <parameter name="num2" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3078">Number.</doc>
+                 line="3094">Number.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
         </parameters>
@@ -4480,25 +4480,25 @@ case.</doc>
               throws="1">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="3009">Check that the return value is skipped</doc>
-        <source-position filename="regress.h" line="892"/>
+             line="3025">Check that the return value is skipped</doc>
+        <source-position filename="regress.h" line="899"/>
         <return-value transfer-ownership="none" skip="1">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="3023">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
+               line="3039">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="obj" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3011">a #RegressTestObj</doc>
+                 line="3027">a #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
           <parameter name="a" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3012">Parameter.</doc>
+                 line="3028">Parameter.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
           <parameter name="out_b"
@@ -4507,13 +4507,13 @@ case.</doc>
                      transfer-ownership="full">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3013">A return value.</doc>
+                 line="3029">A return value.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="c" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3014">Other parameter.</doc>
+                 line="3030">Other parameter.</doc>
             <type name="gdouble" c:type="gdouble"/>
           </parameter>
           <parameter name="inout_d"
@@ -4522,7 +4522,7 @@ case.</doc>
                      transfer-ownership="full">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3015">Will be incremented.</doc>
+                 line="3031">Will be incremented.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="out_sum"
@@ -4531,19 +4531,19 @@ case.</doc>
                      transfer-ownership="full">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3016">Return value.</doc>
+                 line="3032">Return value.</doc>
             <type name="gint" c:type="gint*"/>
           </parameter>
           <parameter name="num1" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3017">Number.</doc>
+                 line="3033">Number.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
           <parameter name="num2" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3018">Number.</doc>
+                 line="3034">Number.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
         </parameters>
@@ -4553,33 +4553,33 @@ case.</doc>
               throws="1">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="3045">Check that the return value is skipped. Succeed if a is nonzero, otherwise
+             line="3061">Check that the return value is skipped. Succeed if a is nonzero, otherwise
 raise an error.</doc>
-        <source-position filename="regress.h" line="904"/>
+        <source-position filename="regress.h" line="911"/>
         <return-value transfer-ownership="none" skip="1">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="3054">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
+               line="3070">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <instance-parameter name="obj" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3047">a #RegressTestObj</doc>
+                 line="3063">a #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
           <parameter name="a" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="3048">Parameter.</doc>
+                 line="3064">Parameter.</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
         </parameters>
       </method>
       <method name="torture_signature_0"
               c:identifier="regress_test_obj_torture_signature_0">
-        <source-position filename="regress.h" line="872"/>
+        <source-position filename="regress.h" line="879"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -4587,7 +4587,7 @@ raise an error.</doc>
           <instance-parameter name="obj" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="2954">A #RegressTestObj</doc>
+                 line="2970">A #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
           <parameter name="x" transfer-ownership="none">
@@ -4624,8 +4624,8 @@ raise an error.</doc>
               throws="1">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="2977">This function throws an error if m is odd.</doc>
-        <source-position filename="regress.h" line="881"/>
+             line="2993">This function throws an error if m is odd.</doc>
+        <source-position filename="regress.h" line="888"/>
         <return-value transfer-ownership="none">
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
@@ -4633,7 +4633,7 @@ raise an error.</doc>
           <instance-parameter name="obj" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="2979">A #RegressTestObj</doc>
+                 line="2995">A #RegressTestObj</doc>
             <type name="TestObj" c:type="RegressTestObj*"/>
           </instance-parameter>
           <parameter name="x" transfer-ownership="none">
@@ -4809,7 +4809,7 @@ raise an error.</doc>
       <glib:signal name="sig-with-array-len-prop" when="last">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="2361">This test signal similar to GSettings::change-event.
+             line="2377">This test signal similar to GSettings::change-event.
 You can use this with regress_test_obj_emit_sig_with_array_len_prop(), or
 raise from the introspection client language.</doc>
         <return-value transfer-ownership="none">
@@ -4822,7 +4822,7 @@ raise from the introspection client language.</doc>
                      allow-none="1">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="2364">numbers, or %NULL</doc>
+                 line="2380">numbers, or %NULL</doc>
             <array length="1" zero-terminated="0" c:type="gpointer">
               <type name="guint"/>
             </array>
@@ -4830,7 +4830,7 @@ raise from the introspection client language.</doc>
           <parameter name="len" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="2365">length of @arr, or 0</doc>
+                 line="2381">length of @arr, or 0</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
         </parameters>
@@ -4838,7 +4838,7 @@ raise from the introspection client language.</doc>
       <glib:signal name="sig-with-array-prop" when="last">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="2341">This test signal is like TelepathyGlib's
+             line="2357">This test signal is like TelepathyGlib's
  TpChannel:: group-members-changed-detailed:</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
@@ -4847,7 +4847,7 @@ raise from the introspection client language.</doc>
           <parameter name="arr" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="2344">numbers</doc>
+                 line="2360">numbers</doc>
             <array name="GLib.Array">
               <type name="guint"/>
             </array>
@@ -4862,7 +4862,7 @@ raise from the introspection client language.</doc>
           <parameter name="cr" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="2447">A cairo context.</doc>
+                 line="2463">A cairo context.</doc>
             <type name="cairo.Context"/>
           </parameter>
         </parameters>
@@ -4870,7 +4870,7 @@ raise from the introspection client language.</doc>
       <glib:signal name="sig-with-gerror" when="last">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="2575">This signal is modeled after #GstDiscoverer::discovered, and is added to
+             line="2591">This signal is modeled after #GstDiscoverer::discovered, and is added to
 exercise the path of a #GError being marshalled as a boxed type instead of
 an exception in the introspected language.
 
@@ -4887,7 +4887,7 @@ language.</doc>
                      allow-none="1">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="2578">A #GError if something went wrong
+                 line="2594">A #GError if something went wrong
   internally in @self. You must not free this #GError.</doc>
             <type name="GLib.Error"/>
           </parameter>
@@ -4896,7 +4896,7 @@ language.</doc>
       <glib:signal name="sig-with-hash-prop" when="last">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="2384">This test signal is like TelepathyGlib's
+             line="2400">This test signal is like TelepathyGlib's
  TpAccount::status-changed</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
@@ -4913,7 +4913,7 @@ language.</doc>
       <glib:signal name="sig-with-inout-int" when="last">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="2554">This signal is modeled after GtkEditable::insert-text.</doc>
+             line="2570">This signal is modeled after GtkEditable::insert-text.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -4924,7 +4924,7 @@ language.</doc>
                      transfer-ownership="full">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="2557">The position, in characters, at which to
+                 line="2573">The position, in characters, at which to
     insert the new text. This is an in-out paramter. After the signal
     emission is finished, it should point after the newly inserted text.</doc>
             <type name="gint" c:type="gpointer"/>
@@ -4934,7 +4934,7 @@ language.</doc>
       <glib:signal name="sig-with-int64-prop" when="last">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="2495">You can use this with regress_test_obj_emit_sig_with_int64, or raise from
+             line="2511">You can use this with regress_test_obj_emit_sig_with_int64, or raise from
 the introspection client langage.</doc>
         <return-value transfer-ownership="none">
           <type name="gint64" c:type="gint64"/>
@@ -4943,7 +4943,7 @@ the introspection client langage.</doc>
           <parameter name="i" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="2498">an integer</doc>
+                 line="2514">an integer</doc>
             <type name="gint64" c:type="gint64"/>
           </parameter>
         </parameters>
@@ -4958,7 +4958,7 @@ the introspection client langage.</doc>
           <parameter name="i" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="2538">an integer</doc>
+                 line="2554">an integer</doc>
             <type name="gint" c:type="gint"/>
           </parameter>
         </parameters>
@@ -4966,7 +4966,7 @@ the introspection client langage.</doc>
       <glib:signal name="sig-with-obj" when="last">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="2423">Test transfer none GObject as a param (tests refcounting).
+             line="2439">Test transfer none GObject as a param (tests refcounting).
 Use with regress_test_obj_emit_sig_with_obj</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
@@ -4975,7 +4975,7 @@ Use with regress_test_obj_emit_sig_with_obj</doc>
           <parameter name="obj" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="2426">A newly created RegressTestObj</doc>
+                 line="2442">A newly created RegressTestObj</doc>
             <type name="GObject.Object"/>
           </parameter>
         </parameters>
@@ -4983,7 +4983,7 @@ Use with regress_test_obj_emit_sig_with_obj</doc>
       <glib:signal name="sig-with-strv" when="last">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="2404">Test GStrv as a param.</doc>
+             line="2420">Test GStrv as a param.</doc>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -4991,7 +4991,7 @@ Use with regress_test_obj_emit_sig_with_obj</doc>
           <parameter name="strs" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="2407">strings</doc>
+                 line="2423">strings</doc>
             <array>
               <type name="utf8"/>
             </array>
@@ -5001,7 +5001,7 @@ Use with regress_test_obj_emit_sig_with_obj</doc>
       <glib:signal name="sig-with-uint64-prop" when="last">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="2515">You can use this with regress_test_obj_emit_sig_with_uint64, or raise from
+             line="2531">You can use this with regress_test_obj_emit_sig_with_uint64, or raise from
 the introspection client langage.</doc>
         <return-value transfer-ownership="none">
           <type name="guint64" c:type="guint64"/>
@@ -5010,7 +5010,7 @@ the introspection client langage.</doc>
           <parameter name="i" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="2518">an integer</doc>
+                 line="2534">an integer</doc>
             <type name="guint64" c:type="guint64"/>
           </parameter>
         </parameters>
@@ -5051,13 +5051,13 @@ the introspection client langage.</doc>
             <parameter name="obj" transfer-ownership="none">
               <doc xml:space="preserve"
                    filename="regress.c"
-                   line="3179">A #RegressTestObj</doc>
+                   line="3195">A #RegressTestObj</doc>
               <type name="TestObj" c:type="RegressTestObj*"/>
             </parameter>
             <parameter name="somestr" transfer-ownership="none">
               <doc xml:space="preserve"
                    filename="regress.c"
-                   line="3180">Meaningless string</doc>
+                   line="3196">Meaningless string</doc>
               <type name="utf8" c:type="const char*"/>
             </parameter>
           </parameters>
@@ -5140,7 +5140,7 @@ the introspection client langage.</doc>
       </function>
     </enumeration>
     <bitfield name="TestPrivateEnum" c:type="RegressTestPrivateEnum">
-      <source-position filename="regress.h" line="1408"/>
+      <source-position filename="regress.h" line="1415"/>
       <member name="public_enum_before"
               value="1"
               c:identifier="REGRESS_TEST_PUBLIC_ENUM_BEFORE">
@@ -5151,7 +5151,7 @@ the introspection client langage.</doc>
       </member>
     </bitfield>
     <record name="TestPrivateStruct" c:type="RegressTestPrivateStruct">
-      <source-position filename="regress.h" line="1400"/>
+      <source-position filename="regress.h" line="1407"/>
       <field name="this_is_public_before" writable="1">
         <type name="gint" c:type="gint"/>
       </field>
@@ -5163,7 +5163,7 @@ the introspection client langage.</doc>
       </field>
     </record>
     <record name="TestReferenceCounters" c:type="RegressTestReferenceCounters">
-      <source-position filename="regress.h" line="1510"/>
+      <source-position filename="regress.h" line="1517"/>
       <field name="refcount" writable="1">
         <type name="gint" c:type="grefcount"/>
       </field>
@@ -5263,7 +5263,7 @@ the introspection client langage.</doc>
       </method>
     </record>
     <callback name="TestSimpleCallback" c:type="RegressTestSimpleCallback">
-      <source-position filename="regress.h" line="1079"/>
+      <source-position filename="regress.h" line="1086"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -5285,7 +5285,7 @@ the introspection client langage.</doc>
       <method name="clone" c:identifier="regress_test_struct_a_clone">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="1720">Make a copy of a RegressTestStructA</doc>
+             line="1736">Make a copy of a RegressTestStructA</doc>
         <source-position filename="regress.h" line="547"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
@@ -5294,7 +5294,7 @@ the introspection client langage.</doc>
           <instance-parameter name="a" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="1722">the structure</doc>
+                 line="1738">the structure</doc>
             <type name="TestStructA" c:type="RegressTestStructA*"/>
           </instance-parameter>
           <parameter name="a_out"
@@ -5303,7 +5303,7 @@ the introspection client langage.</doc>
                      transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="1723">the cloned structure</doc>
+                 line="1739">the cloned structure</doc>
             <type name="TestStructA" c:type="RegressTestStructA*"/>
           </parameter>
         </parameters>
@@ -5320,13 +5320,13 @@ the introspection client langage.</doc>
                      transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="1736">the structure that is to be filled</doc>
+                 line="1752">the structure that is to be filled</doc>
             <type name="TestStructA" c:type="RegressTestStructA*"/>
           </parameter>
           <parameter name="string" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="1737">ignored</doc>
+                 line="1753">ignored</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
@@ -5343,7 +5343,7 @@ the introspection client langage.</doc>
       <method name="clone" c:identifier="regress_test_struct_b_clone">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="1763">Make a copy of a RegressTestStructB</doc>
+             line="1779">Make a copy of a RegressTestStructB</doc>
         <source-position filename="regress.h" line="563"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
@@ -5352,7 +5352,7 @@ the introspection client langage.</doc>
           <instance-parameter name="b" transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="1765">the structure</doc>
+                 line="1781">the structure</doc>
             <type name="TestStructB" c:type="RegressTestStructB*"/>
           </instance-parameter>
           <parameter name="b_out"
@@ -5361,7 +5361,7 @@ the introspection client langage.</doc>
                      transfer-ownership="none">
             <doc xml:space="preserve"
                  filename="regress.c"
-                 line="1766">the cloned structure</doc>
+                 line="1782">the cloned structure</doc>
             <type name="TestStructB" c:type="RegressTestStructB*"/>
           </parameter>
         </parameters>
@@ -5470,7 +5470,7 @@ the introspection client langage.</doc>
       </field>
     </record>
     <record name="TestStructFixedArray" c:type="RegressTestStructFixedArray">
-      <source-position filename="regress.h" line="1413"/>
+      <source-position filename="regress.h" line="1420"/>
       <field name="just_int" writable="1">
         <type name="gint" c:type="gint"/>
       </field>
@@ -5480,7 +5480,7 @@ the introspection client langage.</doc>
         </array>
       </field>
       <method name="frob" c:identifier="regress_test_struct_fixed_array_frob">
-        <source-position filename="regress.h" line="1417"/>
+        <source-position filename="regress.h" line="1424"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -5499,17 +5499,17 @@ the introspection client langage.</doc>
            glib:type-name="RegressTestSubObj"
            glib:get-type="regress_test_sub_obj_get_type"
            glib:type-struct="TestSubObjClass">
-      <source-position filename="regress.h" line="987"/>
+      <source-position filename="regress.h" line="994"/>
       <implements name="TestInterface"/>
       <constructor name="new" c:identifier="regress_test_sub_obj_new">
-        <source-position filename="regress.h" line="994"/>
+        <source-position filename="regress.h" line="1001"/>
         <return-value transfer-ownership="full">
           <type name="TestObj" c:type="RegressTestObj*"/>
         </return-value>
       </constructor>
       <method name="instance_method"
               c:identifier="regress_test_sub_obj_instance_method">
-        <source-position filename="regress.h" line="1000"/>
+        <source-position filename="regress.h" line="1007"/>
         <return-value transfer-ownership="none">
           <type name="gint" c:type="int"/>
         </return-value>
@@ -5520,7 +5520,7 @@ the introspection client langage.</doc>
         </parameters>
       </method>
       <method name="unset_bare" c:identifier="regress_test_sub_obj_unset_bare">
-        <source-position filename="regress.h" line="997"/>
+        <source-position filename="regress.h" line="1004"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -5549,7 +5549,7 @@ the introspection client langage.</doc>
     <record name="TestSubObjClass"
             c:type="RegressTestSubObjClass"
             glib:is-gtype-struct-for="TestSubObj">
-      <source-position filename="regress.h" line="987"/>
+      <source-position filename="regress.h" line="994"/>
       <field name="parent_class">
         <type name="TestObjClass" c:type="RegressTestObjClass"/>
       </field>
@@ -5561,16 +5561,16 @@ the introspection client langage.</doc>
            glib:type-name="RegressTestWi8021x"
            glib:get-type="regress_test_wi_802_1x_get_type"
            glib:type-struct="TestWi8021xClass">
-      <source-position filename="regress.h" line="1233"/>
+      <source-position filename="regress.h" line="1240"/>
       <constructor name="new" c:identifier="regress_test_wi_802_1x_new">
-        <source-position filename="regress.h" line="1240"/>
+        <source-position filename="regress.h" line="1247"/>
         <return-value transfer-ownership="full">
           <type name="TestWi8021x" c:type="RegressTestWi8021x*"/>
         </return-value>
       </constructor>
       <function name="static_method"
                 c:identifier="regress_test_wi_802_1x_static_method">
-        <source-position filename="regress.h" line="1249"/>
+        <source-position filename="regress.h" line="1256"/>
         <return-value transfer-ownership="none">
           <type name="gint" c:type="int"/>
         </return-value>
@@ -5582,7 +5582,7 @@ the introspection client langage.</doc>
       </function>
       <method name="get_testbool"
               c:identifier="regress_test_wi_802_1x_get_testbool">
-        <source-position filename="regress.h" line="1243"/>
+        <source-position filename="regress.h" line="1250"/>
         <return-value transfer-ownership="none">
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
@@ -5594,7 +5594,7 @@ the introspection client langage.</doc>
       </method>
       <method name="set_testbool"
               c:identifier="regress_test_wi_802_1x_set_testbool">
-        <source-position filename="regress.h" line="1246"/>
+        <source-position filename="regress.h" line="1253"/>
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -5620,7 +5620,7 @@ the introspection client langage.</doc>
     <record name="TestWi8021xClass"
             c:type="RegressTestWi8021xClass"
             glib:is-gtype-struct-for="TestWi8021x">
-      <source-position filename="regress.h" line="1233"/>
+      <source-position filename="regress.h" line="1240"/>
       <field name="parent_class">
         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
       </field>
@@ -5628,12 +5628,12 @@ the introspection client langage.</doc>
     <constant name="UTF8_CONSTANT"
               value="const ♥ utf8"
               c:type="REGRESS_UTF8_CONSTANT">
-      <source-position filename="regress.h" line="1428"/>
+      <source-position filename="regress.h" line="1435"/>
       <type name="utf8" c:type="gchar*"/>
     </constant>
     <function name="aliased_caller_alloc"
               c:identifier="regress_aliased_caller_alloc">
-      <source-position filename="regress.h" line="1390"/>
+      <source-position filename="regress.h" line="1397"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6290,7 +6290,7 @@ exposed to language bindings.</doc>
       </parameters>
     </function>
     <function name="func_obj_null_in" c:identifier="regress_func_obj_null_in">
-      <source-position filename="regress.h" line="950"/>
+      <source-position filename="regress.h" line="957"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6301,14 +6301,14 @@ exposed to language bindings.</doc>
                    allow-none="1">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="3194">A #RegressTestObj</doc>
+               line="3210">A #RegressTestObj</doc>
           <type name="TestObj" c:type="RegressTestObj*"/>
         </parameter>
       </parameters>
     </function>
     <function name="func_obj_nullable_in"
               c:identifier="regress_func_obj_nullable_in">
-      <source-position filename="regress.h" line="955"/>
+      <source-position filename="regress.h" line="962"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6319,17 +6319,17 @@ exposed to language bindings.</doc>
                    allow-none="1">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="3214">A #RegressTestObj</doc>
+               line="3230">A #RegressTestObj</doc>
           <type name="TestObj" c:type="RegressTestObj*"/>
         </parameter>
       </parameters>
     </function>
     <function name="get_variant" c:identifier="regress_get_variant">
-      <source-position filename="regress.h" line="1503"/>
+      <source-position filename="regress.h" line="1510"/>
       <return-value transfer-ownership="none">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="4543">A new variant</doc>
+             line="4559">A new variant</doc>
         <type name="GLib.Variant" c:type="GVariant*"/>
       </return-value>
     </function>
@@ -6346,7 +6346,7 @@ exposed to language bindings.</doc>
                    transfer-ownership="full">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="1625">A flags value</doc>
+               line="1641">A flags value</doc>
           <type name="TestFlags" c:type="RegressTestFlags*"/>
         </parameter>
       </parameters>
@@ -6355,9 +6355,9 @@ exposed to language bindings.</doc>
               c:identifier="regress_has_parameter_named_attrs">
       <doc xml:space="preserve"
            filename="regress.c"
-           line="4503">This test case mirrors GnomeKeyringPasswordSchema from
+           line="4519">This test case mirrors GnomeKeyringPasswordSchema from
 libgnome-keyring.</doc>
-      <source-position filename="regress.h" line="1443"/>
+      <source-position filename="regress.h" line="1450"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6365,13 +6365,13 @@ libgnome-keyring.</doc>
         <parameter name="foo" transfer-ownership="none">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="4505">some int</doc>
+               line="4521">some int</doc>
           <type name="gint" c:type="int"/>
         </parameter>
         <parameter name="attributes" transfer-ownership="none">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="4506">list of attributes</doc>
+               line="4522">list of attributes</doc>
           <array zero-terminated="0" c:type="gpointer" fixed-size="32">
             <type name="guint32" c:type="gpointer"/>
           </array>
@@ -6380,7 +6380,7 @@ libgnome-keyring.</doc>
     </function>
     <function name="introspectable_via_alias"
               c:identifier="regress_introspectable_via_alias">
-      <source-position filename="regress.h" line="1368"/>
+      <source-position filename="regress.h" line="1375"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6393,7 +6393,7 @@ libgnome-keyring.</doc>
     <function name="not_introspectable_via_alias"
               c:identifier="regress_not_introspectable_via_alias"
               introspectable="0">
-      <source-position filename="regress.h" line="1379"/>
+      <source-position filename="regress.h" line="1386"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6406,7 +6406,7 @@ libgnome-keyring.</doc>
     <function name="random_function_with_skipped_structure"
               c:identifier="regress_random_function_with_skipped_structure"
               introspectable="0">
-      <source-position filename="regress.h" line="1339"/>
+      <source-position filename="regress.h" line="1346"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6443,7 +6443,7 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_array_callback"
               c:identifier="regress_test_array_callback">
-      <source-position filename="regress.h" line="1134"/>
+      <source-position filename="regress.h" line="1141"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -6466,7 +6466,7 @@ libgnome-keyring.</doc>
                    transfer-ownership="full">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="3256">An array of #RegressTestObj</doc>
+               line="3272">An array of #RegressTestObj</doc>
           <array zero-terminated="0" c:type="RegressTestObj***" fixed-size="2">
             <type name="TestObj" c:type="RegressTestObj**"/>
           </array>
@@ -6630,7 +6630,7 @@ libgnome-keyring.</doc>
     </function>
     <function name="test_array_inout_callback"
               c:identifier="regress_test_array_inout_callback">
-      <source-position filename="regress.h" line="1137"/>
+      <source-position filename="regress.h" line="1144"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -6647,7 +6647,7 @@ libgnome-keyring.</doc>
       <return-value transfer-ownership="full">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="887">a new array of integers.</doc>
+             line="903">a new array of integers.</doc>
         <array length="0" zero-terminated="0" c:type="int*">
           <type name="gint" c:type="int"/>
         </array>
@@ -6659,7 +6659,7 @@ libgnome-keyring.</doc>
                    transfer-ownership="full">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="885">length of the returned array.</doc>
+               line="901">length of the returned array.</doc>
           <type name="gint" c:type="int*"/>
         </parameter>
       </parameters>
@@ -6719,7 +6719,7 @@ libgnome-keyring.</doc>
       <return-value transfer-ownership="none">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="904">a static array of integers.</doc>
+             line="920">a static array of integers.</doc>
         <array length="0" zero-terminated="0" c:type="int*">
           <type name="gint" c:type="int"/>
         </array>
@@ -6731,7 +6731,7 @@ libgnome-keyring.</doc>
                    transfer-ownership="full">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="902">length of the returned array.</doc>
+               line="918">length of the returned array.</doc>
           <type name="gint" c:type="int*"/>
         </parameter>
       </parameters>
@@ -6754,7 +6754,7 @@ libgnome-keyring.</doc>
         <parameter name="len" transfer-ownership="none">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="917">length</doc>
+               line="933">length</doc>
           <type name="gint" c:type="int"/>
         </parameter>
       </parameters>
@@ -6782,7 +6782,7 @@ libgnome-keyring.</doc>
                    transfer-ownership="full">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="929">length</doc>
+               line="945">length</doc>
           <type name="gint" c:type="int*"/>
         </parameter>
       </parameters>
@@ -6816,16 +6816,33 @@ libgnome-keyring.</doc>
         </parameter>
       </parameters>
     </function>
+    <function name="test_array_static_in_int"
+              c:identifier="regress_test_array_static_in_int">
+      <source-position filename="regress.h" line="872"/>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="x" transfer-ownership="none">
+          <doc xml:space="preserve"
+               filename="regress.c"
+               line="869">a list of 10 integers</doc>
+          <array zero-terminated="0" c:type="int*" fixed-size="10">
+            <type name="gint" c:type="int"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
     <function name="test_array_struct_in_full"
               c:identifier="regress_test_array_struct_in_full">
       <doc xml:space="preserve"
            filename="regress.c"
-           line="4635">Test flat array input with transfer full.
+           line="4651">Test flat array input with transfer full.
 
 Similar to:
 - gsf_property_settings_free() with structs but they contain pointers
 - g_byte_array_new_take() with guint8s</doc>
-      <source-position filename="regress.h" line="1525"/>
+      <source-position filename="regress.h" line="1532"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6833,7 +6850,7 @@ Similar to:
         <parameter name="arr" transfer-ownership="full">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="4637">An array</doc>
+               line="4653">An array</doc>
           <array length="1" zero-terminated="0" c:type="RegressTestStructA*">
             <type name="TestStructA" c:type="RegressTestStructA"/>
           </array>
@@ -6841,7 +6858,7 @@ Similar to:
         <parameter name="len" transfer-ownership="none">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="4638">Length of @arr</doc>
+               line="4654">Length of @arr</doc>
           <type name="gsize" c:type="gsize"/>
         </parameter>
       </parameters>
@@ -6850,10 +6867,10 @@ Similar to:
               c:identifier="regress_test_array_struct_in_none">
       <doc xml:space="preserve"
            filename="regress.c"
-           line="4655">Test flat array input with transfer none.
+           line="4671">Test flat array input with transfer none.
 
 Similar to g_main_context_check() or gtk_target_list_new().</doc>
-      <source-position filename="regress.h" line="1528"/>
+      <source-position filename="regress.h" line="1535"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6861,7 +6878,7 @@ Similar to g_main_context_check() or gtk_target_list_new().</doc>
         <parameter name="arr" transfer-ownership="none">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="4657">An array.</doc>
+               line="4673">An array.</doc>
           <array length="1" zero-terminated="0" c:type="RegressTestStructA*">
             <type name="TestStructA" c:type="RegressTestStructA"/>
           </array>
@@ -6869,7 +6886,7 @@ Similar to g_main_context_check() or gtk_target_list_new().</doc>
         <parameter name="len" transfer-ownership="none">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="4658">Length of @arr</doc>
+               line="4674">Length of @arr</doc>
           <type name="gsize" c:type="gsize"/>
         </parameter>
       </parameters>
@@ -6878,7 +6895,7 @@ Similar to g_main_context_check() or gtk_target_list_new().</doc>
               c:identifier="regress_test_array_struct_out">
       <doc xml:space="preserve"
            filename="regress.c"
-           line="1746">This is similar to gdk_keymap_get_entries_for_keyval().</doc>
+           line="1762">This is similar to gdk_keymap_get_entries_for_keyval().</doc>
       <source-position filename="regress.h" line="554"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
@@ -6904,10 +6921,10 @@ Similar to g_main_context_check() or gtk_target_list_new().</doc>
               c:identifier="regress_test_array_struct_out_caller_alloc">
       <doc xml:space="preserve"
            filename="regress.c"
-           line="4614">Test flat caller-allocated array output.
+           line="4630">Test flat caller-allocated array output.
 
 Similar to g_main_context_query().</doc>
-      <source-position filename="regress.h" line="1522"/>
+      <source-position filename="regress.h" line="1529"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6918,7 +6935,7 @@ Similar to g_main_context_query().</doc>
                    transfer-ownership="none">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="4616">An array</doc>
+               line="4632">An array</doc>
           <array length="1" zero-terminated="0" c:type="RegressTestStructA*">
             <type name="TestStructA" c:type="RegressTestStructA"/>
           </array>
@@ -6929,7 +6946,7 @@ Similar to g_main_context_query().</doc>
                    transfer-ownership="full">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="4617">Length of @arr</doc>
+               line="4633">Length of @arr</doc>
           <type name="gsize" c:type="gsize"/>
         </parameter>
       </parameters>
@@ -6938,10 +6955,10 @@ Similar to g_main_context_query().</doc>
               c:identifier="regress_test_array_struct_out_container">
       <doc xml:space="preserve"
            filename="regress.c"
-           line="4576">Test flat array output with transfer container.
+           line="4592">Test flat array output with transfer container.
 
 Similar to pango_layout_get_log_attrs().</doc>
-      <source-position filename="regress.h" line="1516"/>
+      <source-position filename="regress.h" line="1523"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6952,7 +6969,7 @@ Similar to pango_layout_get_log_attrs().</doc>
                    transfer-ownership="container">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="4578">An array</doc>
+               line="4594">An array</doc>
           <array length="1" zero-terminated="0" c:type="RegressTestStructA**">
             <type name="TestStructA" c:type="RegressTestStructA*"/>
           </array>
@@ -6963,7 +6980,7 @@ Similar to pango_layout_get_log_attrs().</doc>
                    transfer-ownership="full">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="4579">Length of @arr</doc>
+               line="4595">Length of @arr</doc>
           <type name="gsize" c:type="gsize*"/>
         </parameter>
       </parameters>
@@ -6972,8 +6989,8 @@ Similar to pango_layout_get_log_attrs().</doc>
               c:identifier="regress_test_array_struct_out_full_fixed">
       <doc xml:space="preserve"
            filename="regress.c"
-           line="4598">Test flat fixed-size array output with transfer full.</doc>
-      <source-position filename="regress.h" line="1519"/>
+           line="4614">Test flat fixed-size array output with transfer full.</doc>
+      <source-position filename="regress.h" line="1526"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -6984,7 +7001,7 @@ Similar to pango_layout_get_log_attrs().</doc>
                    transfer-ownership="full">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="4600">An array</doc>
+               line="4616">An array</doc>
           <array zero-terminated="0"
                  c:type="RegressTestStructA**"
                  fixed-size="4">
@@ -6997,13 +7014,13 @@ Similar to pango_layout_get_log_attrs().</doc>
               c:identifier="regress_test_array_struct_out_none">
       <doc xml:space="preserve"
            filename="regress.c"
-           line="4551">Test flat array output with transfer none.
+           line="4567">Test flat array output with transfer none.
 
 Similar to:
 - mm_modem_peek_ports() with structs
 - gdk_query_visual_types() with enums
 - gdk_event_get_axes() with doubles</doc>
-      <source-position filename="regress.h" line="1513"/>
+      <source-position filename="regress.h" line="1520"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -7014,7 +7031,7 @@ Similar to:
                    transfer-ownership="none">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="4553">An array</doc>
+               line="4569">An array</doc>
           <array length="1" zero-terminated="0" c:type="RegressTestStructA**">
             <type name="TestStructA" c:type="RegressTestStructA*"/>
           </array>
@@ -7025,14 +7042,14 @@ Similar to:
                    transfer-ownership="full">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="4554">Length of @arr</doc>
+               line="4570">Length of @arr</doc>
           <type name="gsize" c:type="gsize*"/>
         </parameter>
       </parameters>
     </function>
     <function name="test_async_ready_callback"
               c:identifier="regress_test_async_ready_callback">
-      <source-position filename="regress.h" line="1167"/>
+      <source-position filename="regress.h" line="1174"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -7161,7 +7178,7 @@ Similar to:
       </return-value>
     </function>
     <function name="test_callback" c:identifier="regress_test_callback">
-      <source-position filename="regress.h" line="1128"/>
+      <source-position filename="regress.h" line="1135"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -7177,7 +7194,7 @@ Similar to:
     </function>
     <function name="test_callback_async"
               c:identifier="regress_test_callback_async">
-      <source-position filename="regress.h" line="1160"/>
+      <source-position filename="regress.h" line="1167"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -7201,9 +7218,9 @@ Similar to:
               c:identifier="regress_test_callback_destroy_notify">
       <doc xml:space="preserve"
            filename="regress.c"
-           line="3857">Notified - callback persists until a DestroyNotify delegate
+           line="3873">Notified - callback persists until a DestroyNotify delegate
 is invoked.</doc>
-      <source-position filename="regress.h" line="1147"/>
+      <source-position filename="regress.h" line="1154"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -7231,9 +7248,9 @@ is invoked.</doc>
               c:identifier="regress_test_callback_destroy_notify_no_user_data">
       <doc xml:space="preserve"
            filename="regress.c"
-           line="3884">Adds a scope notified callback with no user data. This can invoke an error
+           line="3900">Adds a scope notified callback with no user data. This can invoke an error
 condition in bindings which needs to be tested.</doc>
-      <source-position filename="regress.h" line="1152"/>
+      <source-position filename="regress.h" line="1159"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -7252,7 +7269,7 @@ condition in bindings which needs to be tested.</doc>
     </function>
     <function name="test_callback_return_full"
               c:identifier="regress_test_callback_return_full">
-      <source-position filename="regress.h" line="1144"/>
+      <source-position filename="regress.h" line="1151"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -7265,7 +7282,7 @@ condition in bindings which needs to be tested.</doc>
     </function>
     <function name="test_callback_thaw_async"
               c:identifier="regress_test_callback_thaw_async">
-      <source-position filename="regress.h" line="1163"/>
+      <source-position filename="regress.h" line="1170"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -7274,14 +7291,14 @@ condition in bindings which needs to be tested.</doc>
               c:identifier="regress_test_callback_thaw_notifications">
       <doc xml:space="preserve"
            filename="regress.c"
-           line="3898">Invokes all callbacks installed by #test_callback_destroy_notify(),
+           line="3914">Invokes all callbacks installed by #test_callback_destroy_notify(),
 adding up their return values, and removes them, invoking the
 corresponding destroy notfications.</doc>
-      <source-position filename="regress.h" line="1156"/>
+      <source-position filename="regress.h" line="1163"/>
       <return-value transfer-ownership="none">
         <doc xml:space="preserve"
              filename="regress.c"
-             line="3905">Sum of the return values of the invoked callbacks.</doc>
+             line="3921">Sum of the return values of the invoked callbacks.</doc>
         <type name="gint" c:type="int"/>
       </return-value>
     </function>
@@ -7289,9 +7306,9 @@ corresponding destroy notfications.</doc>
               c:identifier="regress_test_callback_user_data">
       <doc xml:space="preserve"
            filename="regress.c"
-           line="3826">Call - callback parameter persists for the duration of the method
+           line="3842">Call - callback parameter persists for the duration of the method
 call and can be released on return.</doc>
-      <source-position filename="regress.h" line="1140"/>
+      <source-position filename="regress.h" line="1147"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -7363,7 +7380,7 @@ call and can be released on return.</doc>
     </function>
     <function name="test_create_fundamental_hidden_class_instance"
               c:identifier="regress_test_create_fundamental_hidden_class_instance">
-      <source-position filename="regress.h" line="1076"/>
+      <source-position filename="regress.h" line="1083"/>
       <return-value transfer-ownership="full">
         <type name="TestFundamentalObject"
               c:type="RegressTestFundamentalObject*"/>
@@ -7371,7 +7388,7 @@ call and can be released on return.</doc>
     </function>
     <function name="test_date_in_gvalue"
               c:identifier="regress_test_date_in_gvalue">
-      <source-position filename="regress.h" line="1306"/>
+      <source-position filename="regress.h" line="1313"/>
       <return-value transfer-ownership="full">
         <type name="GObject.Value" c:type="GValue*"/>
       </return-value>
@@ -7456,7 +7473,7 @@ call and can be released on return.</doc>
     </function>
     <function name="test_gerror_callback"
               c:identifier="regress_test_gerror_callback">
-      <source-position filename="regress.h" line="1185"/>
+      <source-position filename="regress.h" line="1192"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -7496,7 +7513,7 @@ call and can be released on return.</doc>
         <parameter name="hash" transfer-ownership="none">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="1343">the hash table returned by
+               line="1359">the hash table returned by
 regress_test_ghash_gvalue_return().</doc>
           <type name="GLib.HashTable" c:type="GHashTable*">
             <type name="utf8"/>
@@ -7519,7 +7536,7 @@ regress_test_ghash_gvalue_return().</doc>
               c:identifier="regress_test_ghash_nested_everything_return">
       <doc xml:space="preserve"
            filename="regress.c"
-           line="1468">Specify nested parameterized types directly with the (type ) annotation.</doc>
+           line="1484">Specify nested parameterized types directly with the (type ) annotation.</doc>
       <source-position filename="regress.h" line="291"/>
       <return-value transfer-ownership="full">
         <type name="GLib.HashTable" c:type="GHashTable*">
@@ -7535,7 +7552,7 @@ regress_test_ghash_gvalue_return().</doc>
               c:identifier="regress_test_ghash_nested_everything_return2">
       <doc xml:space="preserve"
            filename="regress.c"
-           line="1485">Another way of specifying nested parameterized types: using the
+           line="1501">Another way of specifying nested parameterized types: using the
 element-type annotation.</doc>
       <source-position filename="regress.h" line="294"/>
       <return-value transfer-ownership="full">
@@ -7919,7 +7936,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_hash_table_callback"
               c:identifier="regress_test_hash_table_callback">
-      <source-position filename="regress.h" line="1182"/>
+      <source-position filename="regress.h" line="1189"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -7927,7 +7944,7 @@ element-type annotation.</doc>
         <parameter name="data" transfer-ownership="none">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="4029">GHashTable that gets passed to callback</doc>
+               line="4045">GHashTable that gets passed to callback</doc>
           <type name="GLib.HashTable" c:type="GHashTable*">
             <type name="utf8"/>
             <type name="gint"/>
@@ -8037,7 +8054,7 @@ element-type annotation.</doc>
     </function>
     <function name="test_multi_callback"
               c:identifier="regress_test_multi_callback">
-      <source-position filename="regress.h" line="1131"/>
+      <source-position filename="regress.h" line="1138"/>
       <return-value transfer-ownership="none">
         <type name="gint" c:type="int"/>
       </return-value>
@@ -8079,14 +8096,14 @@ element-type annotation.</doc>
               c:identifier="regress_test_multiline_doc_comments">
       <doc xml:space="preserve"
            filename="regress.c"
-           line="4411">This is a function.
+           line="4427">This is a function.
 
 It has multiple lines in the documentation.
 
 The sky is blue.
 
 You will give me your credit card number.</doc>
-      <source-position filename="regress.h" line="1320"/>
+      <source-position filename="regress.h" line="1327"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -8095,7 +8112,7 @@ You will give me your credit card number.</doc>
               c:identifier="regress_test_nested_parameter">
       <doc xml:space="preserve"
            filename="regress.c"
-           line="4427">&lt;informaltable&gt;
+           line="4443">&lt;informaltable&gt;
   &lt;tgroup cols="3"&gt;
     &lt;thead&gt;
       &lt;row&gt;
@@ -8123,7 +8140,7 @@ rgb(20%, 30%, 0%)&lt;/literallayout&gt;&lt;/entry&gt;
 &lt;/informaltable&gt;
 
 What we're testing here is that the scanner ignores the @a nested inside XML.</doc>
-      <source-position filename="regress.h" line="1323"/>
+      <source-position filename="regress.h" line="1330"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -8131,14 +8148,14 @@ What we're testing here is that the scanner ignores the @a nested inside XML.</d
         <parameter name="a" transfer-ownership="none">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="4429">An integer</doc>
+               line="4445">An integer</doc>
           <type name="gint" c:type="int"/>
         </parameter>
       </parameters>
     </function>
     <function name="test_noptr_callback"
               c:identifier="regress_test_noptr_callback">
-      <source-position filename="regress.h" line="1125"/>
+      <source-position filename="regress.h" line="1132"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -8154,7 +8171,7 @@ What we're testing here is that the scanner ignores the @a nested inside XML.</d
     </function>
     <function name="test_null_gerror_callback"
               c:identifier="regress_test_null_gerror_callback">
-      <source-position filename="regress.h" line="1188"/>
+      <source-position filename="regress.h" line="1195"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -8166,14 +8183,14 @@ What we're testing here is that the scanner ignores the @a nested inside XML.</d
     </function>
     <function name="test_null_strv_in_gvalue"
               c:identifier="regress_test_null_strv_in_gvalue">
-      <source-position filename="regress.h" line="1312"/>
+      <source-position filename="regress.h" line="1319"/>
       <return-value transfer-ownership="full">
         <type name="GObject.Value" c:type="GValue*"/>
       </return-value>
     </function>
     <function name="test_owned_gerror_callback"
               c:identifier="regress_test_owned_gerror_callback">
-      <source-position filename="regress.h" line="1191"/>
+      <source-position filename="regress.h" line="1198"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -8219,7 +8236,7 @@ What we're testing here is that the scanner ignores the @a nested inside XML.</d
     </function>
     <function name="test_simple_callback"
               c:identifier="regress_test_simple_callback">
-      <source-position filename="regress.h" line="1122"/>
+      <source-position filename="regress.h" line="1129"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -8249,9 +8266,9 @@ What we're testing here is that the scanner ignores the @a nested inside XML.</d
               introspectable="0">
       <doc xml:space="preserve"
            filename="regress.c"
-           line="4079">Should not emit a warning:
+           line="4095">Should not emit a warning:
 https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
-      <source-position filename="regress.h" line="1195"/>
+      <source-position filename="regress.h" line="1202"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -8259,7 +8276,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
         <parameter name="callback" transfer-ownership="none">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="4081">No annotation here</doc>
+               line="4097">No annotation here</doc>
           <type name="TestCallback" c:type="RegressTestCallback"/>
         </parameter>
       </parameters>
@@ -8289,13 +8306,13 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
                    transfer-ownership="none">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="1736">the structure that is to be filled</doc>
+               line="1752">the structure that is to be filled</doc>
           <type name="TestStructA" c:type="RegressTestStructA*"/>
         </parameter>
         <parameter name="string" transfer-ownership="none">
           <doc xml:space="preserve"
                filename="regress.c"
-               line="1737">ignored</doc>
+               line="1753">ignored</doc>
           <type name="utf8" c:type="const gchar*"/>
         </parameter>
       </parameters>
@@ -8315,7 +8332,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
     </function>
     <function name="test_strv_in_gvalue"
               c:identifier="regress_test_strv_in_gvalue">
-      <source-position filename="regress.h" line="1309"/>
+      <source-position filename="regress.h" line="1316"/>
       <return-value transfer-ownership="full">
         <type name="GObject.Value" c:type="GValue*"/>
       </return-value>
@@ -8374,7 +8391,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
     </function>
     <function name="test_torture_signature_0"
               c:identifier="regress_test_torture_signature_0">
-      <source-position filename="regress.h" line="1277"/>
+      <source-position filename="regress.h" line="1284"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -8413,8 +8430,8 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
               throws="1">
       <doc xml:space="preserve"
            filename="regress.c"
-           line="4299">This function throws an error if m is odd.</doc>
-      <source-position filename="regress.h" line="1285"/>
+           line="4315">This function throws an error if m is odd.</doc>
+      <source-position filename="regress.h" line="1292"/>
       <return-value transfer-ownership="none">
         <type name="gboolean" c:type="gboolean"/>
       </return-value>
@@ -8450,7 +8467,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
     </function>
     <function name="test_torture_signature_2"
               c:identifier="regress_test_torture_signature_2">
-      <source-position filename="regress.h" line="1294"/>
+      <source-position filename="regress.h" line="1301"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
@@ -8751,7 +8768,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
     <function name="test_value_get_fundamental_object"
               c:identifier="regress_test_value_get_fundamental_object"
               introspectable="0">
-      <source-position filename="regress.h" line="1050"/>
+      <source-position filename="regress.h" line="1057"/>
       <return-value>
         <type name="TestFundamentalObject"
               c:type="RegressTestFundamentalObject*"/>
@@ -8783,7 +8800,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
     <function name="test_value_set_fundamental_object"
               c:identifier="regress_test_value_set_fundamental_object"
               introspectable="0">
-      <source-position filename="regress.h" line="1047"/>
+      <source-position filename="regress.h" line="1054"/>
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
       </return-value>
diff --git a/tests/scanner/Regress-1.0-sections-expected.txt b/tests/scanner/Regress-1.0-sections-expected.txt
index 0a0bf082..b35b3a9a 100644
--- a/tests/scanner/Regress-1.0-sections-expected.txt
+++ b/tests/scanner/Regress-1.0-sections-expected.txt
@@ -73,6 +73,7 @@ regress_test_array_int_none_out
 regress_test_array_int_null_in
 regress_test_array_int_null_out
 regress_test_array_int_out
+regress_test_array_static_in_int
 regress_test_array_struct_in_full
 regress_test_array_struct_in_none
 regress_test_array_struct_out
diff --git a/tests/scanner/regress.c b/tests/scanner/regress.c
index bc04079c..3a63436b 100644
--- a/tests/scanner/regress.c
+++ b/tests/scanner/regress.c
@@ -864,6 +864,22 @@ regress_test_array_fixed_size_int_return (void)
   return ints;
 }
 
+/**
+ * regress_test_array_static_in_int
+ * @x: (array fixed-size=10): a list of 10 integers
+ */
+#if (defined(__GNUC__) || defined(__clang__)) && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+void
+regress_test_array_static_in_int (int x[static 10])
+{
+}
+#else
+void
+regress_test_array_static_in_int (int x[10])
+{
+}
+#endif
+
 /**
  * regress_test_strv_out_c:
  *
diff --git a/tests/scanner/regress.h b/tests/scanner/regress.h
index cf5302e4..d1c7b437 100644
--- a/tests/scanner/regress.h
+++ b/tests/scanner/regress.h
@@ -867,6 +867,13 @@ void       regress_forced_method (RegressTestObj *obj);
 _GI_TEST_EXTERN
 void regress_test_array_fixed_out_objects (RegressTestObj ***objs);
 
+#if (defined(__GNUC__) || defined(__clang__)) && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+_GI_TEST_EXTERN
+void regress_test_array_static_in_int (int x[static 10]);
+#else
+_GI_TEST_EXTERN
+void regress_test_array_static_in_int (int x[10]);
+#endif
 
 _GI_TEST_EXTERN
 void regress_test_obj_torture_signature_0 (RegressTestObj    *obj,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]