summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2016-02-05 16:05:07 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2016-02-05 16:05:07 +0100
commit27510903a3be8bccee4466b56808b23c149e6f0b (patch)
tree6265644689b30a9b85c0e0fdbdfa3655c45274a1
parent8983406e5dfa37df9a5371830168b3bf70f095ad (diff)
downloadvala-27510903a3be8bccee4466b56808b23c149e6f0b.tar.gz
codegen: Properly handle PointerType/VoidType in get_ccode_lower_case_name()
-rw-r--r--codegen/valaccodebasemodule.vala5
-rw-r--r--tests/basic-types/arrays.vala9
2 files changed, 14 insertions, 0 deletions
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index ae18ce5fe..2d2632ab7 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -6069,8 +6069,13 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
} else if (node is DelegateType) {
var type = (DelegateType) node;
return get_ccode_lower_case_name (type.delegate_symbol, infix);
+ } else if (node is PointerType) {
+ var type = (PointerType) node;
+ return get_ccode_lower_case_name (type.base_type, infix);
} else if (node is GenericType) {
return "valageneric";
+ } else if (node is VoidType) {
+ return "valavoid";
} else {
var type = (DataType) node;
return get_ccode_lower_case_name (type.data_type, infix);
diff --git a/tests/basic-types/arrays.vala b/tests/basic-types/arrays.vala
index b3a7bafc0..fece74999 100644
--- a/tests/basic-types/arrays.vala
+++ b/tests/basic-types/arrays.vala
@@ -183,6 +183,14 @@ void test_generics_array () {
assert (b.length == 3);
}
+void test_void_array () {
+ void*[] a = {};
+ a += (void*) null;
+ a += (void*) null;
+ assert (a.length == 2);
+ assert ((void*) null in a);
+}
+
void main () {
test_integer_array ();
test_string_array ();
@@ -193,4 +201,5 @@ void main () {
test_inline_array ();
test_delegate_array ();
test_generics_array ();
+ test_void_array ();
}