Strange. The Arduino Robot uses the same processor as the Leonardo and the Mini. All the pin mappings seem to be identical, so why did they “forget” to copy that part over?
Try this… put the code below into your file, above any #include lines. See if that fixes the problem.
#define digitalPinToPCICR(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17)7 || ((p) >= A8 && (p) <= A10)) ? (&PCICR) : ((uint8_t *)0))
#define digitalPinToPCICRbit(p) 0
#define digitalPinToPCMSK(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCMSK0) : ((uint8_t *)0))
#define digitalPinToPCMSKbit(p) ( ((p) >= 8 && (p) <= 11) ? (p) - 4 : ((p) == 14 ? 3 : ((p) == 15 ? 1 : ((p) == 16 ? 2 : ((p) == 17 ? 0 : (p - A8 + 4))))))
If that does fix it, then you can proceed with your project. If you want to make it a more permanent fix, then put those lines into your own pins_arduino.h file, which is unfortunately rather deeply buried in the Arduino installation on your computer.
The GSM shield is using software serial. On the Micro/Leonardo/Robot, you can use hardware serial instead. That may avoid a few problems. That processor only has a restricted list of pins available to be used for the receive function of software serial. Most other Arduinos have no restriction.
I think your next problem is going to be the GSM shield is using a pin that the Robot can’t use for SoftwareSerial. You can only have Rx on pins 8, 9, 10, 11, 14, 15, 16 and it seems like most of those are already used on the Robot.