From: Jürg Billeter Date: Fri, 2 Oct 2009 21:46:29 +0000 (+0200) Subject: Fix generated code for stack-allocated arrays X-Git-Tag: 0.7.8~78 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2dda5192f775543bbd49494934f4d5c54cd45af1;p=thirdparty%2Fvala.git Fix generated code for stack-allocated arrays Fixes bug 595751. --- diff --git a/tests/Makefile.am b/tests/Makefile.am index eb19c7fbd..d18a99334 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -20,6 +20,7 @@ TESTS = \ basic-types/strings.vala \ basic-types/arrays.vala \ basic-types/pointers.vala \ + basic-types/bug595751.vala \ basic-types/bug596637.vala \ basic-types/bug596785.vala \ namespaces.vala \ diff --git a/tests/basic-types/bug595751.vala b/tests/basic-types/bug595751.vala new file mode 100644 index 000000000..c57d4e9f4 --- /dev/null +++ b/tests/basic-types/bug595751.vala @@ -0,0 +1,3 @@ +void main () { + int a[2]; +} diff --git a/vala/valasymbolresolver.vala b/vala/valasymbolresolver.vala index 213bd5318..09a9c19cc 100644 --- a/vala/valasymbolresolver.vala +++ b/vala/valasymbolresolver.vala @@ -350,7 +350,12 @@ public class Vala.SymbolResolver : CodeVisitor { public override void visit_local_variable (LocalVariable local) { local.accept_children (this); if (local.variable_type is ReferenceType) { - local.variable_type.nullable = true; + var array_type = local.variable_type as ArrayType; + if (array_type != null && array_type.fixed_length) { + // local fixed length arrays are not nullable + } else { + local.variable_type.nullable = true; + } } }