С/C++ задачка: что будет, если разделить INT_MIN на -1

Сегодня на просторах сети нашел такой вот сюрприз-задачку, которая активно обсуждается на многих бордах, связанных с программированием. Спойлить не хочу, потому как попробовать решить самому куда интереснее.

Предлагается такой вот код:

#include <limits.h>
 
int foo(int a, int b) {
  return a / b;
}
 
int main(void) {
  return foo(INT_MIN, -1);
}

Каков результат деления?

За подробным ответом — сюда.