From 7c99f521877ee0795a04c6ed3e1a2bbc1df7edf6 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 9 Jul 2019 10:49:45 +0100 Subject: Add minimum requirement of 2 variants for #no_nil --- src/check_type.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/check_type.cpp') diff --git a/src/check_type.cpp b/src/check_type.cpp index 6cd982bcb..df3c554dd 100644 --- a/src/check_type.cpp +++ b/src/check_type.cpp @@ -716,6 +716,11 @@ void check_union_type(CheckerContext *ctx, Type *union_type, Ast *node, ArrayUnion.variants = variants; union_type->Union.no_nil = ut->no_nil; + if (union_type->Union.no_nil) { + if (variants.count < 2) { + error(ut->align, "A union with #no_nil must have at least 2 variants"); + } + } if (ut->align != nullptr) { i64 custom_align = 1; -- cgit v1.2.3