Encontré este código para un microcontrolador LPCxxxx, en la rutina de reinicio.
do {
const uint32_t topOfStack = (uint32_t) &_vStackTop;
__set_PSP(topOfStack);
__set_MSP(topOfStack);
} while(0);
Me preguntaba por qué esto está dentro de un bucle do-while (que se ejecuta solo una vez) en lugar de escribir esas instrucciones de forma directa (me refiero a fuera del bucle)