Question: My guess is it just made parsing easier, but I can't see exactly why.

So what does this have ...

```
do
{
  some stuff
}
while(test);

more stuff

```

that's better than ...

```
do
{
  some stuff
}
while(test)

more stuff

```

Answer: 
C is semicolon-terminated (whereas Pascal is semicolon-separated). It would be inconsistent to drop the semicolon there.

I, frankly, hate the reuse of the while for the do loop. I think repeat-until would have been less confusing. But it is what it is.
My answer is that, the compiler may get confusion, when we didn't include the semicolon in the termination of `do.....while();` loop. Without this it is not clear about:

1. when the do ends?
2. If the while may a separate loop followed immediately after do loop.

That's why we include semicolon in the end of `do......while` loop, to indicate the loop is terminating here if the condition is false.