You have a function, ISR(). Every function needs to have a return type. Yours does not.If your function does not return a value, its return type should be void.
Would a function used as a ISR function ever be anything but a void function? As the original code that was interrupted didn't call the function how could the returned value be of value, and might that screw up the stack upon return if it was other then a void that returned a value?