isl_val_get_num_si crashes on overflow, so don't use it on arbitrary integers. Instead, convert to an APInt and explicitly check for overflow.
Testcase only crashes on platforms where long is 32 bits because of the signature of isl_val_get_num_si; not sure if it's possible to write a testcase which crashes if long is 64 bits.
There are a few other places in polly which use isl_val_get_num_si; they probably need to be fixed as well. I don't think polly uses any of the other "long" isl APIs in an unsafe manner.