What does if (!msize) mean?

c

Solution

if (msize == 0)
    msize = 1 / msize; /* provoke a signal */

It's checking if `msize` is 0, and is equivalent to writing `if (msize == 0)`. If it is, it deliberately performs a divide by zero.

Problem

I am trying to figure out the meaning of the following codes. In here `if (!msize)` checking to see if `msize` is zero or if `msize` is `NULL` ? ``` if (!msize) msize = 1 / msize; /* provoke a signal */ //Example 1: A division-by-zero misuse, in lib/mpi/mpi-pow.c of the Linux kernel, where the entire code will be optimized away. //Compilers, GCC 4.7 and Clang 3.1 ```

Original source