Skip to content

Commit

Permalink
glibc 2.25 compat: remove assert(X=Y)
Browse files Browse the repository at this point in the history
The assert() related definitions in glibc 2.25 were altered to warn
about assert(X=Y) when -Wparentheses is used.  See
https://abi-laboratory.pro/tracker/changelog/glibc/2.25/log.html

lib/list.c used this construct to set the value of a magic field which
is defined only when debugging.

Replaced the assert()s with #ifndef/#endifs.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Olaf Faaland <faaland1@llnl.gov>
Closes #610
  • Loading branch information
ofaaland authored and behlendorf committed Apr 3, 2017
1 parent bf8abea commit 481762f
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions lib/list.c
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,9 @@ list_create (ListDelF f)
l->fDel = f;
l->count = 0;
list_mutex_init(&l->mutex);
assert(l->magic = LIST_MAGIC); /* set magic via assert abuse */
#ifndef NDEBUG
l->magic = LIST_MAGIC;
#endif
return(l);
}

Expand All @@ -238,7 +240,9 @@ list_destroy (List l)
while (i) {
assert(i->magic == LIST_MAGIC);
iTmp = i->iNext;
assert(i->magic = ~LIST_MAGIC); /* clear magic via assert abuse */
#ifndef NDEBUG
i->magic = ~LIST_MAGIC;
#endif /* !NDEBUG */
list_iterator_free(i);
i = iTmp;
}
Expand All @@ -250,7 +254,9 @@ list_destroy (List l)
list_node_free(p);
p = pTmp;
}
assert(l->magic = ~LIST_MAGIC); /* clear magic via assert abuse */
#ifndef NDEBUG
l->magic = ~LIST_MAGIC;
#endif /* !NDEBUG */
list_mutex_unlock(&l->mutex);
list_mutex_destroy(&l->mutex);
list_free(l);
Expand Down Expand Up @@ -520,7 +526,9 @@ list_iterator_create (List l)
i->prev = &l->head;
i->iNext = l->iNext;
l->iNext = i;
assert(i->magic = LIST_MAGIC); /* set magic via assert abuse */
#ifndef NDEBUG
i->magic = LIST_MAGIC;
#endif /* !NDEBUG */
list_mutex_unlock(&l->mutex);
return(i);
}
Expand Down Expand Up @@ -557,7 +565,9 @@ list_iterator_destroy (ListIterator i)
}
}
list_mutex_unlock(&i->list->mutex);
assert(i->magic = ~LIST_MAGIC); /* clear magic via assert abuse */
#ifndef NDEBUG
i->magic = ~LIST_MAGIC;
#endif /* !NDEBUG */
list_iterator_free(i);
return;
}
Expand Down

0 comments on commit 481762f

Please sign in to comment.