From 0ed49adf0f8895b270a1cc653803b41f32597db6 Mon Sep 17 00:00:00 2001 From: mpi Date: Wed, 31 Jan 2018 14:47:13 +0000 Subject: [PATCH] Consider integer/float size during base type comparisons. Regression introduced when I added support for merging forward declarations with their corresponding types because they do not have a size. --- usr.bin/ctfconv/parse.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/usr.bin/ctfconv/parse.c b/usr.bin/ctfconv/parse.c index 0d25bb3890b..7b839330d0f 100644 --- a/usr.bin/ctfconv/parse.c +++ b/usr.bin/ctfconv/parse.c @@ -1,4 +1,4 @@ -/* $OpenBSD: parse.c,v 1.10 2017/10/31 10:08:51 mpi Exp $ */ +/* $OpenBSD: parse.c,v 1.11 2018/01/31 14:47:13 mpi Exp $ */ /* * Copyright (c) 2016-2017 Martin Pieuchot @@ -324,6 +324,11 @@ it_cmp(struct itype *a, struct itype *b) if ((diff = (a->it_type - b->it_type)) != 0) return diff; + /* Basic types need to have the same size. */ + if ((a->it_type == CTF_K_INTEGER || a->it_type == CTF_K_FLOAT) && + (diff = (a->it_size - b->it_size) != 0)) + return diff; + /* Match by name */ if (!(a->it_flags & ITF_ANON) && !(b->it_flags & ITF_ANON)) return strcmp(it_name(a), it_name(b)); -- 2.20.1