From f8de1f111dc0d87e0563ca055b639f39e0f66380 Mon Sep 17 00:00:00 2001 From: Martijn Dekker Date: Sat, 27 Mar 2021 22:30:14 +0000 Subject: [PATCH] Fix compiler warnings and regression test failure (re: fc2d5a60) src/cmd/ksh93/bltins/test.c: - Fix the following compiler warnings from clang: test.c:554:11: warning: assigning to 'char *' from 'const char []' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers] e_msg = e_badop; ^ ~~~~~~~ test.c:556:11: warning: assigning to 'char *' from 'const char []' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers] e_msg = e_unsupported_op; ^ ~~~~~~~~~~~~~~~~ test.c:560:1: warning: control may reach end of non-void function [-Wreturn-type] src/cmd/ksh93/tests/builtins.sh: - Fix regression test by updating error message text. --- src/cmd/ksh93/bltins/test.c | 9 +++------ src/cmd/ksh93/tests/builtins.sh | 4 ++-- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/cmd/ksh93/bltins/test.c b/src/cmd/ksh93/bltins/test.c index d6f7e6e621ee..9db5c062ac1b 100644 --- a/src/cmd/ksh93/bltins/test.c +++ b/src/cmd/ksh93/bltins/test.c @@ -547,16 +547,13 @@ int test_binop(Shell_t *shp,register int op,const char *left,const char *right) { /* fallback for operators not supported by the test builtin */ int i=0; - char *e_msg; while(shtab_testops[i].sh_number && shtab_testops[i].sh_number != op) i++; - if(op==TEST_END) - e_msg = e_badop; - else - e_msg = e_unsupported_op; - errormsg(SH_DICT,ERROR_exit(2),e_msg,shtab_testops[i].sh_name); + errormsg(SH_DICT, ERROR_exit(2), op==TEST_END ? e_badop : e_unsupported_op, shtab_testops[i].sh_name); } } + /* NOTREACHED */ + return(0); } /* diff --git a/src/cmd/ksh93/tests/builtins.sh b/src/cmd/ksh93/tests/builtins.sh index 2e82ac5ad131..cc14752c98d2 100755 --- a/src/cmd/ksh93/tests/builtins.sh +++ b/src/cmd/ksh93/tests/builtins.sh @@ -1002,13 +1002,13 @@ fi actual=$($SHELL -c 'test foo =~ foo' 2>&1) actual_status=$? actual=${actual#*: } -expect='test: =~: operator not supported; use [[...]]' +expect='test: =~: operator not supported; use [[ ... ]]' expect_status=2 [[ "$actual" = "$expect" ]] || err_exit "test =~ failed (expected $expect, got $actual)" [[ "$actual_status" = "$expect_status" ]] || err_exit "test =~ failed with the wrong exit status (expected $expect_status, got $actual_status)" -# Invalid operators 'test' and '[[...]]' both reject should also cause an error with exit status 2. +# Invalid operators 'test' and '[[ ... ]]' both reject should also cause an error with exit status 2. for operator in '===' ']]' do actual="$($SHELL -c "test foo $operator foo" 2>&1)"