aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2024-04-14 21:48:32 +0800
committerGitHub <noreply@github.com>2024-04-14 21:48:32 +0800
commitf6a3fdd6848d67dc54cebb6c297f8ebdc109c3a3 (patch)
tree33e8bf1e2e87b6a3975800f8157ff4978eb0ccee /src
parentc34c31af734577255b6fb8a84b5f1ce9ff03cd6a (diff)
downloadrneovim-f6a3fdd6848d67dc54cebb6c297f8ebdc109c3a3.tar.gz
rneovim-f6a3fdd6848d67dc54cebb6c297f8ebdc109c3a3.tar.bz2
rneovim-f6a3fdd6848d67dc54cebb6c297f8ebdc109c3a3.zip
refactor: fix clang NonNullParamChecker warnings (#28327)
Diffstat (limited to 'src')
-rw-r--r--src/nvim/CMakeLists.txt1
-rw-r--r--src/nvim/regexp.c6
-rw-r--r--src/nvim/window.c2
3 files changed, 5 insertions, 4 deletions
diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt
index acd002dba0..45ad738255 100644
--- a/src/nvim/CMakeLists.txt
+++ b/src/nvim/CMakeLists.txt
@@ -844,7 +844,6 @@ add_glob_target(
--checks='
-*,
clang-analyzer-*,
- -clang-analyzer-core.NonNullParamChecker,
-clang-analyzer-core.NullDereference,
-clang-analyzer-core.UndefinedBinaryOperatorResult,
-clang-analyzer-core.uninitialized.Assign,
diff --git a/src/nvim/regexp.c b/src/nvim/regexp.c
index a81990670a..0ce911c91a 100644
--- a/src/nvim/regexp.c
+++ b/src/nvim/regexp.c
@@ -5320,7 +5320,7 @@ static regprog_T *bt_regcomp(uint8_t *expr, int re_flags)
}
// Remember whether this pattern has any \z specials in it.
r->reghasz = (uint8_t)re_has_z;
- scan = r->program + 1; // First BRANCH.
+ scan = &r->program[1]; // First BRANCH.
if (OP(regnext(scan)) == END) { // Only one top-level choice.
scan = OPERAND(scan);
@@ -7322,7 +7322,7 @@ static int regtry(bt_regprog_T *prog, colnr_T col, proftime_T *tm, int *timed_ou
// Clear the external match subpointers if necessaey.
rex.need_clear_zsubexpr = (prog->reghasz == REX_SET);
- if (regmatch(prog->program + 1, tm, timed_out) == 0) {
+ if (regmatch(&prog->program[1], tm, timed_out) == 0) {
return 0;
}
@@ -7664,7 +7664,7 @@ static void regdump(uint8_t *pattern, bt_regprog_T *r)
fprintf(f, "-------------------------------------\n\r\nregcomp(%s):\r\n",
pattern);
- s = r->program + 1;
+ s = &r->program[1];
// Loop until we find the END that isn't before a referred next (an END
// can also appear in a NOMATCH operand).
while (op != END || s <= end) {
diff --git a/src/nvim/window.c b/src/nvim/window.c
index 7389b1fe2f..9f030d2bab 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -1959,6 +1959,7 @@ int win_splitmove(win_T *wp, int size, int flags)
// Remove the window and frame from the tree of frames. Don't flatten any
// frames yet so we can restore things if win_split_ins fails.
winframe_remove(wp, &dir, NULL, &unflat_altfr);
+ assert(unflat_altfr != NULL);
win_remove(wp, NULL);
last_status(false); // may need to remove last status line
win_comp_pos(); // recompute window positions
@@ -1967,6 +1968,7 @@ int win_splitmove(win_T *wp, int size, int flags)
// Split a window on the desired side and put "wp" there.
if (win_split_ins(size, flags, wp, dir, unflat_altfr) == NULL) {
if (!wp->w_floating) {
+ assert(unflat_altfr != NULL);
// win_split_ins doesn't change sizes or layout if it fails to insert an
// existing window, so just undo winframe_remove.
winframe_restore(wp, dir, unflat_altfr);