From: Rico Tzschichholz Date: Sat, 8 Dec 2018 09:41:50 +0000 (+0100) Subject: codegen: Always emit constants with initializer-list X-Git-Tag: 0.43.2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3763b4c6c296fa3bc467050ae50e1dc320e85039;p=thirdparty%2Fvala.git codegen: Always emit constants with initializer-list generate_constant_declaration() handles both definition and declaration. This is important when using --use-header where the actual definition would never be written and we ended up with an "extern const ..." in the header only. Fixes https://gitlab.gnome.org/GNOME/vala/issues/81 --- diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala index c4d00aba5..9012567c4 100644 --- a/codegen/valaccodebasemodule.vala +++ b/codegen/valaccodebasemodule.vala @@ -644,6 +644,10 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator { if (sym.anonymous) { return !decl_space.is_header && CodeContext.get ().use_header; } + // constants with initializer-list are special + if (sym is Constant && ((Constant) sym).value is InitializerList) { + return false; + } if (sym.external_package || (!decl_space.is_header && CodeContext.get ().use_header && !sym.is_internal_symbol ())) { // add feature test macros foreach (unowned string feature_test_macro in get_ccode_feature_test_macros (sym).split (",")) {