control-flow/continue-invalid.test \
control-flow/double-catch.test \
control-flow/expressions-conditional.vala \
+ control-flow/finally-no-return.vala \
control-flow/finally-return.test \
control-flow/for.vala \
control-flow/for-switch-continue.vala \
--- /dev/null
+/* control_flow_finally_no_return.c generated by valac, the Vala compiler
+ * generated from control_flow_finally_no_return.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 void foo (GError** error);
+VALA_EXTERN void bar (void);
+static void _vala_main (void);
+
+void
+foo (GError** error)
+{
+}
+
+void
+bar (void)
+{
+}
+
+static void
+_vala_main (void)
+{
+ GError* _inner_error0_ = NULL;
+ {
+ foo (&_inner_error0_);
+ if (G_UNLIKELY (_inner_error0_ != NULL)) {
+ goto __finally0;
+ }
+ }
+ __finally0:
+ {
+ GError* _inner_error1_ = NULL;
+ bar ();
+ }
+ if (G_UNLIKELY (_inner_error0_ != NULL)) {
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
+ g_clear_error (&_inner_error0_);
+ return;
+ }
+}
+
+int
+main (int argc,
+ char ** argv)
+{
+ _vala_main ();
+ return 0;
+}
+
return;
}
- jump_stack.add (new JumpTarget.finally_clause (finally_block, current_block));
+ if (current_block != null) {
+ jump_stack.add (new JumpTarget.finally_clause (finally_block, current_block));
+ }
}
int finally_jump_stack_size = jump_stack.size;