Mercurial > illumos > git > illumos-joyent
changeset 24315:7e17c5e0d17a
12013 fix smatch build for GCC4
Reviewed by: Dan McDonald <danmcd@joyent.com>
Approved by: Robert Mustacchi <rm@fingolfin.org>
author | John Levon <john.levon@joyent.com> |
---|---|
date | Fri, 22 Nov 2019 13:16:49 +0000 |
parents | 35689e4cc00c |
children | 6e954fd9b63c |
files | usr/src/tools/smatch/Makefile usr/src/tools/smatch/src/Makefile usr/src/tools/smatch/src/check_arm64_tagged.c usr/src/tools/smatch/src/ident-list.h usr/src/tools/smatch/src/smatch_data/illumos_kernel.skipped_functions usr/src/tools/smatch/src/smatch_data/illumos_user.skipped_functions usr/src/tools/smatch/src/smatch_kernel_user_data.c |
diffstat | 7 files changed, 21 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/tools/smatch/Makefile Sun Nov 24 09:14:22 2019 -0800 +++ b/usr/src/tools/smatch/Makefile Fri Nov 22 13:16:49 2019 +0000 @@ -20,7 +20,7 @@ # PROG = smatch -SPARSE_VERSION = 0.6.1-rc1-il-1 +SPARSE_VERSION = 0.6.1-rc1-il-2 include ../Makefile.tools
--- a/usr/src/tools/smatch/src/Makefile Sun Nov 24 09:14:22 2019 -0800 +++ b/usr/src/tools/smatch/src/Makefile Fri Nov 22 13:16:49 2019 +0000 @@ -1,4 +1,4 @@ -VERSION=0.6.1-rc1-il-1 +VERSION=0.6.1-rc1-il-2 ######################################################################## # The following variables can be overwritten from the command line @@ -9,7 +9,7 @@ LD = $(CC) AR = ar -CFLAGS ?= -O2 -g +CFLAGS ?= -g DESTDIR ?= PREFIX ?= $(HOME)
--- a/usr/src/tools/smatch/src/check_arm64_tagged.c Sun Nov 24 09:14:22 2019 -0800 +++ b/usr/src/tools/smatch/src/check_arm64_tagged.c Fri Nov 22 13:16:49 2019 +0000 @@ -154,8 +154,13 @@ static bool rl_is_tagged(struct range_list *rl) { - sval_t invalid = { .type = &ullong_ctype, .value = (1ULL << 56) }; - sval_t invalid_kernel = { .type = &ullong_ctype, .value = (0xff8ULL << 52) }; + sval_t invalid; + sval_t invalid_kernel; + + invalid.type = &ullong_ctype; + invalid.value = 1ULL << 56; + invalid_kernel.type = &ullong_ctype; + invalid_kernel.value = 0xff8ULL << 52; /* * We only care for tagged addresses, thus ignore anything where the
--- a/usr/src/tools/smatch/src/ident-list.h Sun Nov 24 09:14:22 2019 -0800 +++ b/usr/src/tools/smatch/src/ident-list.h Fri Nov 22 13:16:49 2019 +0000 @@ -31,7 +31,7 @@ /* C99 keywords */ IDENT(restrict); IDENT(__restrict); IDENT(__restrict__); IDENT(_Bool); -IDENT(_Complex); +IDENT_RESERVED(_Complex); IDENT_RESERVED(_Imaginary); /* C11 keywords */
--- a/usr/src/tools/smatch/src/smatch_data/illumos_kernel.skipped_functions Sun Nov 24 09:14:22 2019 -0800 +++ b/usr/src/tools/smatch/src/smatch_data/illumos_kernel.skipped_functions Fri Nov 22 13:16:49 2019 +0000 @@ -3,6 +3,7 @@ dtrace_disx86 elf32exec elfexec +emlxs_sli4_process_unsol_rcv iscsi_ioctl lm_idle_chk ld64_sym_validate
--- a/usr/src/tools/smatch/src/smatch_data/illumos_user.skipped_functions Sun Nov 24 09:14:22 2019 -0800 +++ b/usr/src/tools/smatch/src/smatch_data/illumos_user.skipped_functions Fri Nov 22 13:16:49 2019 +0000 @@ -1,8 +1,6 @@ /* - * The below functions cause smatch to fail with "turning off implications after - * 60 seconds" or similar, generally because they're too large for it to handle. - * - * This will disable analysis altogether. + * These are specific functions that are generally too complex for smatch to + * reasonably handle. */ /* libast */
--- a/usr/src/tools/smatch/src/smatch_kernel_user_data.c Sun Nov 24 09:14:22 2019 -0800 +++ b/usr/src/tools/smatch/src/smatch_kernel_user_data.c Fri Nov 22 13:16:49 2019 +0000 @@ -681,10 +681,15 @@ static struct range_list *strip_negatives(struct range_list *rl) { sval_t min = rl_min(rl); - sval_t minus_one = { .type = rl_type(rl), .value = -1 }; - sval_t over = { .type = rl_type(rl), .value = INT_MAX + 1ULL }; + sval_t minus_one; + sval_t over; sval_t max = sval_type_max(rl_type(rl)); + minus_one.type = rl_type(rl); + minus_one.value = -1; + over.type = rl_type(rl); + over.value = INT_MAX + 1ULL; + if (!rl) return NULL;