From 6e72e68757c50ac8ef247bbf5f624cc927ed0381 Mon Sep 17 00:00:00 2001 From: fennecdjay Date: Tue, 26 Mar 2019 17:28:51 +0100 Subject: [PATCH] :art: Forbid import empty union --- src/lib/import.c | 2 ++ tests/import/empty_union.c | 15 +++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 tests/import/empty_union.c diff --git a/src/lib/import.c b/src/lib/import.c index 7a46aa61..ee939d14 100644 --- a/src/lib/import.c +++ b/src/lib/import.c @@ -577,6 +577,8 @@ ANN m_int gwi_union_add(const Gwi gwi, const restrict m_str type, const restrict } ANN m_int gwi_union_end(const Gwi gwi, const ae_flag flag) { + if(!gwi->union_data.list) + ERR_B(0, "union is empty"); const Stmt stmt = new_stmt_union(gwi->union_data.list, 0); stmt->d.stmt_union.flag = flag; CHECK_BB(traverse_stmt_union(gwi->env, &stmt->d.stmt_union)) diff --git a/tests/import/empty_union.c b/tests/import/empty_union.c new file mode 100644 index 00000000..54d87be5 --- /dev/null +++ b/tests/import/empty_union.c @@ -0,0 +1,15 @@ +#include "gwion_util.h" +#include "gwion_ast.h" +#include "oo.h" +#include "vm.h" +#include "env.h" +#include "type.h" +#include "object.h" +#include "instr.h" +#include "import.h" + +GWION_IMPORT(empty_union_test) { + CHECK_BB(gwi_union_ini(gwi, NULL)) + CHECK_BB(gwi_union_end(gwi, 0)) + return GW_OK; +} -- 2.43.0