summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2023-05-14 18:51:23 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2023-05-14 19:28:13 -0700
commit919e1b81a4a8ff95c36a0639fa5a5c86f8759f2e (patch)
tree6c4e51f2a2427db599e0de1a53fd21e1abe8d597
parent0c11c2ae71fcc03d98b35384d6c70e6d7454ba90 (diff)
downloademacs-919e1b81a4a8ff95c36a0639fa5a5c86f8759f2e.tar.gz
Pacify GCC 13 -Wnull-dereference in itree.c
* src/itree.c (itree_remove_fix): Simplify code and remove a couple of eassume calls. This works around GCC bug 109586. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109856
-rw-r--r--src/itree.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/itree.c b/src/itree.c
index bd3e62a374a..ecf7d67422a 100644
--- a/src/itree.c
+++ b/src/itree.c
@@ -817,14 +817,13 @@ itree_remove_fix (struct itree_tree *tree,
{
struct itree_node *other = parent->right;
- if (null_safe_is_red (other)) /* case 1.a */
+ if (other->red) /* case 1.a */
{
other->red = false;
parent->red = true;
itree_rotate_left (tree, parent);
other = parent->right;
}
- eassume (other != NULL);
if (null_safe_is_black (other->left) /* 2.a */
&& null_safe_is_black (other->right))
@@ -855,14 +854,13 @@ itree_remove_fix (struct itree_tree *tree,
{
struct itree_node *other = parent->left;
- if (null_safe_is_red (other)) /* 1.b */
+ if (other->red) /* 1.b */
{
other->red = false;
parent->red = true;
itree_rotate_right (tree, parent);
other = parent->left;
}
- eassume (other != NULL);
if (null_safe_is_black (other->right) /* 2.b */
&& null_safe_is_black (other->left))