summaryrefslogtreecommitdiff
path: root/codegen/valaccodebasemodule.vala
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2022-01-03 13:59:36 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2022-01-03 13:59:36 +0100
commit29470dbcfc149d241886dcecb7fd6f4207dc7917 (patch)
tree3b189403212e634f1c6c4b01fa8a70e3d030d898 /codegen/valaccodebasemodule.vala
parent5738468d939f933a9d4b22707811ecfff2e936ed (diff)
downloadvala-29470dbcfc149d241886dcecb7fd6f4207dc7917.tar.gz
codegen: Cast given default-value of struct with possible member initializer
Fixes https://gitlab.gnome.org/GNOME/vala/issues/1272
Diffstat (limited to 'codegen/valaccodebasemodule.vala')
-rw-r--r--codegen/valaccodebasemodule.vala6
1 files changed, 5 insertions, 1 deletions
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index 2e7df70d5..db9a498cc 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -6544,7 +6544,11 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
var array_type = type as ArrayType;
if (type.type_symbol != null && !type.nullable
&& (on_error ? get_ccode_default_value_on_error (type.type_symbol) : get_ccode_default_value (type.type_symbol)) != "") {
- return new CCodeConstant (on_error ? get_ccode_default_value_on_error (type.type_symbol) : get_ccode_default_value (type.type_symbol));
+ CCodeExpression val = new CCodeConstant (on_error ? get_ccode_default_value_on_error (type.type_symbol) : get_ccode_default_value (type.type_symbol));
+ if (st != null && st.get_fields ().size > 0) {
+ val = new CCodeCastExpression (val, get_ccode_name (st));
+ }
+ return val;
} else if (initializer_expression && !type.nullable &&
(st != null || (array_type != null && array_type.fixed_length))) {
// 0-initialize struct with struct initializer { 0 }