summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2016-11-10 11:52:16 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2016-11-10 15:46:03 +0100
commitf5c654f76eeb1ee887f3d89eb701cf82f75a430a (patch)
tree9086df0c70bb379191c9e895dde34fa0eec866aa
parentb8dc0ad504cb4619262372d677d4df84d94b2ee8 (diff)
downloadvala-f5c654f76eeb1ee887f3d89eb701cf82f75a430a.tar.gz
codegen: Don't implicitly initialize local variables with an initializer
-rw-r--r--codegen/valaccodebasemodule.vala8
1 files changed, 6 insertions, 2 deletions
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index a95023c10..939b256ca 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -2358,7 +2358,9 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
// try to initialize uninitialized variables
// initialization not necessary for variables stored in closure
- cvar.initializer = default_value_for_type (local.variable_type, true);
+ if (local.initializer == null) {
+ cvar.initializer = default_value_for_type (local.variable_type, true);
+ }
cvar.init0 = true;
ccode.add_declaration (get_ccode_name (local.variable_type), cvar);
@@ -3488,7 +3490,9 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
} else {
var cvar = new CCodeVariableDeclarator (local.name, null, get_ccode_declarator_suffix (local.variable_type));
if (init) {
- cvar.initializer = default_value_for_type (local.variable_type, true);
+ if (local.initializer == null) {
+ cvar.initializer = default_value_for_type (local.variable_type, true);
+ }
cvar.init0 = true;
}
ccode.add_declaration (get_ccode_name (local.variable_type), cvar);