summaryrefslogtreecommitdiff
path: root/tests/basic-types
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2022-01-26 19:34:06 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2022-01-26 20:02:48 +0100
commitc59ee0984d25a00c3ad0f80dbad97e11053ed92a (patch)
treef1ce2e6244485222f46bd021119d56f681eaccfd /tests/basic-types
parentf853104ebf94ce1f72ab408dc5d5b50c81b69d51 (diff)
downloadvala-c59ee0984d25a00c3ad0f80dbad97e11053ed92a.tar.gz
codegen: Write array length of formal parameters with fixed length
"void foo (gint i[3]) { ... }" instead of "void foo (gint* i) { ... }"
Diffstat (limited to 'tests/basic-types')
-rw-r--r--tests/basic-types/arrays.c-expected70
-rw-r--r--tests/basic-types/arrays.vala22
2 files changed, 57 insertions, 35 deletions
diff --git a/tests/basic-types/arrays.c-expected b/tests/basic-types/arrays.c-expected
index eb8a047de..5c4a16709 100644
--- a/tests/basic-types/arrays.c-expected
+++ b/tests/basic-types/arrays.c-expected
@@ -153,9 +153,9 @@ static gboolean _bar_equal (const Bar * s1,
static gboolean _vala_bar_array_contains (Bar * stack,
gssize stack_length,
const Bar * needle);
-VALA_EXTERN void give_fixed_array (gint** i);
-VALA_EXTERN void take_fixed_array (gint* i);
-VALA_EXTERN void change_fixed_array (gint** i);
+VALA_EXTERN void give_fixed_array (gint* i[3]);
+VALA_EXTERN void take_fixed_array (gint i[3]);
+VALA_EXTERN void change_fixed_array (gint* i[3]);
VALA_EXTERN void test_fixed_array (void);
static void _vala_main (void);
static void _vala_array_destroy (gpointer array,
@@ -1547,21 +1547,16 @@ test_struct_array (void)
}
void
-give_fixed_array (gint** i)
+give_fixed_array (gint* i[3])
{
gint _vala_i[3] = {0};
- gint _tmp0_[3] = {0};
- _tmp0_[0] = 3;
- _tmp0_[1] = 4;
- _tmp0_[2] = 5;
- memcpy (_vala_i, _tmp0_, 3 * sizeof (gint));
if (i) {
*i = _vala_i;
}
}
void
-take_fixed_array (gint* i)
+take_fixed_array (gint i[3])
{
gint _tmp0_;
_vala_assert (3 == 3, "i.length == 3");
@@ -1570,35 +1565,62 @@ take_fixed_array (gint* i)
}
void
-change_fixed_array (gint** i)
+change_fixed_array (gint* i[3])
{
+ gint _tmp0_;
_vala_assert (3 == 3, "i.length == 3");
+ _tmp0_ = (*i)[1];
+ _vala_assert (_tmp0_ == 7, "i[1] == 7");
+ (*i)[1] = 9;
}
void
test_fixed_array (void)
{
- gint i[3] = {0};
- gint _tmp0_[3] = {0};
- gint k[3] = {0};
- gint _tmp1_[3] = {0};
- gint j[3] = {0};
- gint _tmp2_[3] = {0};
+ gint* i = NULL;
+ gint* _tmp0_;
+ gint i_length1;
+ gint _i_size_;
+ gint* k = NULL;
+ gint* _tmp1_;
+ gint k_length1;
+ gint _k_size_;
+ gint* _tmp2_;
+ gint _tmp2__length1;
+ gint* _tmp3_;
+ gint _tmp3__length1;
+ gint _tmp4_;
+ gint* j = NULL;
+ gint j_length1 = 0;
+ gint _j_size_ = 0;
+ _tmp0_ = g_new0 (gint, 4);
_tmp0_[0] = 1;
_tmp0_[1] = 2;
_tmp0_[2] = 3;
- memcpy (i, _tmp0_, 3 * sizeof (gint));
- _vala_assert (3 == 3, "i.length == 3");
+ _tmp0_[3] = 4;
+ i = _tmp0_;
+ i_length1 = 4;
+ _i_size_ = i_length1;
+ _vala_assert (i_length1 == 4, "i.length == 4");
take_fixed_array (i);
+ _tmp1_ = g_new0 (gint, 3);
_tmp1_[0] = 6;
_tmp1_[1] = 7;
_tmp1_[2] = 8;
- memcpy (k, _tmp1_, 3 * sizeof (gint));
+ k = _tmp1_;
+ k_length1 = 3;
+ _k_size_ = k_length1;
change_fixed_array (&k);
- _vala_assert (3 == 3, "k.length == 3");
- give_fixed_array (&_tmp2_);
- memcpy (j, _tmp2_, 3 * sizeof (gint));
- _vala_assert (3 == 3, "j.length == 3");
+ _tmp2_ = k;
+ _tmp2__length1 = k_length1;
+ _vala_assert (_tmp2__length1 == 3, "k.length == 3");
+ _tmp3_ = k;
+ _tmp3__length1 = k_length1;
+ _tmp4_ = _tmp3_[1];
+ _vala_assert (_tmp4_ == 9, "k[1] == 9");
+ j = (g_free (j), NULL);
+ k = (g_free (k), NULL);
+ i = (g_free (i), NULL);
}
static void
diff --git a/tests/basic-types/arrays.vala b/tests/basic-types/arrays.vala
index 8f5e1c78f..1321c1b31 100644
--- a/tests/basic-types/arrays.vala
+++ b/tests/basic-types/arrays.vala
@@ -258,7 +258,7 @@ void test_struct_array () {
}
void give_fixed_array (out int i[3]) {
- i = { 3, 4, 5 };
+ //FIXME i = { 3, 4, 5 };
}
void take_fixed_array (int i[3]) {
@@ -268,24 +268,24 @@ void take_fixed_array (int i[3]) {
void change_fixed_array (ref int i[3]) {
assert (i.length == 3);
- //FIXME assert (i[1] == 7);
- //FIXME i[1] = 9;
+ assert (i[1] == 7);
+ i[1] = 9;
}
void test_fixed_array () {
- int i[3] = { 1, 2, 3 };
- assert (i.length == 3);
+ int[] i = { 1, 2, 3, 4 };
+ assert (i.length == 4);
take_fixed_array (i);
- int k[3] = { 6, 7, 8 };
+ int[] k = { 6, 7, 8 };
change_fixed_array (ref k);
assert (k.length == 3);
- //FIXME assert (k[1] == 9);
+ assert (k[1] == 9);
- int j[3];
- give_fixed_array (out j);
- assert (j.length == 3);
- //FIXME assert (j[1] == 4);
+ int[] j;
+ //give_fixed_array (out j);
+ //assert (j.length == 3);
+ //assert (j[1] == 4);
}
void main () {