Argument order was incorrect, fixes bug 596228.
temp_vars.insert (0, temp_var);
- out_arg_map.set (get_param_pos (-3, true), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, temp_ref));
+ out_arg_map.set (get_param_pos (-3), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, temp_ref));
var ccomma = new CCodeCommaExpression ();
ccomma.append_expression ((CCodeExpression) ccall_expr);
objects/test-029.vala \
objects/test-034.vala \
errors/errors.vala \
+ errors/bug596228.vala \
dbus/basic-types.test \
dbus/arrays.test \
dbus/async.test \
--- /dev/null
+struct Foo {
+ Foo (int foo) {
+ this.foo = foo;
+ }
+
+ int foo;
+}
+
+Foo get_foo () throws Error {
+ return Foo (42);
+}
+
+void main () {
+ var foo = get_foo ();
+ assert (foo.foo == 42);
+}