SIGABRT
The program gives up on itself: abort() rings its own bell.
The other faults come from outside — MMU, CPU, kernel. This one is self-inflicted: the process calls abort() and sends the signal to itself, because carrying on would be worse than dying with its memory documented.
It is the bell of the failed assert(3), of glibc detecting a double free, of C++'s std::terminate. abort() unblocks its own signal before ringing it — giving up on giving up is not an option.
$ ./inventario
inventario: inventario.c:42: repor: Assertion `qtde > 0' failed.
Aborted (core dumped)