if (!f.external) {
var var_decl = new CCodeVariableDeclarator (get_ccode_name (f), null, get_ccode_declarator_suffix (f.variable_type));
- var_decl.initializer = default_value_for_type (f.variable_type, true);
+ var initializer = default_value_for_type (f.variable_type, true);
+ // error: initializer element is not constant (-std=c99 -pedantic-errors)
+ while (initializer is CCodeCastExpression) {
+ initializer = ((CCodeCastExpression) initializer).inner;
+ }
+ var_decl.initializer = initializer;
if (class_init_context != null) {
push_context (class_init_context);
structs/struct-no-gtype-inherit.vala \
structs/struct-static-field-initializer.vala \
structs/struct-static-field-initializer-2.test \
+ structs/struct-static-field-initializer-3.vala \
structs/struct-static-property-initializer.test \
structs/structs.vala \
structs/constructor-params-array.vala \
--- /dev/null
+/* structs_struct_static_field_initializer_3.c generated by valac, the Vala compiler
+ * generated from structs_struct_static_field_initializer_3.vala, do not modify */
+
+#include <glib.h>
+
+#if !defined(VALA_EXTERN)
+#if defined(_WIN32) || defined(__CYGWIN__)
+#define VALA_EXTERN __declspec(dllexport) extern
+#elif __GNUC__ >= 4
+#define VALA_EXTERN __attribute__((visibility("default"))) extern
+#else
+#define VALA_EXTERN extern
+#endif
+#endif
+
+VALA_EXTERN GOnce global;
+GOnce global = G_ONCE_INIT;
+
+static void _vala_main (void);
+
+static void
+_vala_main (void)
+{
+ GOnce local = (GOnce) G_ONCE_INIT;
+}
+
+int
+main (int argc,
+ char ** argv)
+{
+ _vala_main ();
+ return 0;
+}
+
--- /dev/null
+Once global;
+
+void main () {
+ Once local;
+}