From c43a07086bdeefe029c5b6da4ec1c8020126d5ca Mon Sep 17 00:00:00 2001 From: Quentin Carbonneaux Date: Mon, 18 Apr 2016 14:03:06 -0400 Subject: factor some subtyping logic in clsmerge() --- util.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'util.c') diff --git a/util.c b/util.c index 96efdfd..527f214 100644 --- a/util.c +++ b/util.c @@ -188,6 +188,23 @@ vgrow(void *vp, ulong len) *(Vec **)vp = v1; } +int +clsmerge(short *pk, short k) +{ + short k1; + + k1 = *pk; + if (k1 == Kx) { + *pk = k; + return 0; + } + if ((k1 == Kw && k == Kl) || (k1 == Kl && k == Kw)) { + *pk = Kw; + return 0; + } + return k1 != k; +} + int phicls(int t, Tmp *tmp /*, int c*/) { -- cgit v1.2.3