summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomasz Miąsko <tomasz.miasko@gmail.com>2019-01-05 00:00:00 +0000
committerTomasz Miąsko <tomasz.miasko@gmail.com>2019-01-05 17:22:30 +0100
commit6a11cde78591acc37fe9162bcaf26cde10413436 (patch)
treedf330e39fb6138b32209babf422885b72767ed8a
parentaec1c5a3c1206c26c4d0e553558f40ac8a81b68c (diff)
downloadgobject-introspection-6a11cde78591acc37fe9162bcaf26cde10413436.tar.gz
scanner: Merge specifiers and qualifiers when merging basic types.
-rw-r--r--giscanner/scannerparser.y5
-rw-r--r--tests/scanner/Regress-1.0-expected.gir2
2 files changed, 6 insertions, 1 deletions
diff --git a/giscanner/scannerparser.y b/giscanner/scannerparser.y
index ed4f24fd..29d98b41 100644
--- a/giscanner/scannerparser.y
+++ b/giscanner/scannerparser.y
@@ -218,6 +218,11 @@ set_or_merge_base_type (GISourceType *type,
g_free (type->name);
type->name = name;
+ type->storage_class_specifier |= base->storage_class_specifier;
+ type->type_qualifier |= base->type_qualifier;
+ type->function_specifier |= base->function_specifier;
+ type->is_bitfield |= base->is_bitfield;
+
ctype_free (base);
}
else if (base->type == CTYPE_INVALID)
diff --git a/tests/scanner/Regress-1.0-expected.gir b/tests/scanner/Regress-1.0-expected.gir
index 55a910b3..5f303a4e 100644
--- a/tests/scanner/Regress-1.0-expected.gir
+++ b/tests/scanner/Regress-1.0-expected.gir
@@ -5081,7 +5081,7 @@ the introspection client langage.</doc>
<type name="gint" c:type="const gint* volatile"/>
</field>
<field name="data7" writable="1">
- <type name="guint8" c:type="volatile unsigned char"/>
+ <type name="guint8" c:type="volatile const unsigned char"/>
</field>
</record>
<record name="TestStructFixedArray" c:type="RegressTestStructFixedArray">