From: Jeff Mahoney Subject: repair: ASSERT in non-void function causes build errors When ASSERT is compiled out, like it is under the build service, these functions have no return statement but are prototyped to return a value. This patch dumps a message and calls abort() explicitly. This is always an error. Signed-off-by: Jeff Mahoney --- repair/incore_ino.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) --- a/repair/incore_ino.c +++ b/repair/incore_ino.c @@ -165,7 +165,9 @@ __uint32_t num_inode_references(struct i case sizeof(__uint32_t): return irec->ino_un.ex_data->counted_nlinks.un32[ino_offset]; default: - ASSERT(0); + fprintf(stderr, "%s: encountered invalid value %u\n", + __func__, irec->nlink_size); + abort(); } } @@ -205,7 +207,9 @@ __uint32_t get_inode_disk_nlinks(struct case sizeof(__uint32_t): return irec->disk_nlinks.un32[ino_offset]; default: - ASSERT(0); + fprintf(stderr, "%s: encountered invalid value %u\n", + __func__, irec->nlink_size); + abort(); } }