40 columns                              |
>>> continue with line comment
while (true) {
  continue // comment
  ;
}
<<<
while (true) {
  continue // comment
      ;
}
>>> continue with wrapped block comment
while (true) {
  continue /* a long comment that does not wrap */;
}
<<<
while (true) {
  continue /* a long comment that does not wrap */;
}
>>> do with line comment
do // comment
{;} while (true);
<<<
do // comment
    {
  ;
} while (true);
>>> remove blank lines before beginning of block
while (true) {



  // comment
}
<<<
while (true) {
  // comment
}
>>> remove blank lines after end of block
while (true) {
  // comment



}
<<<
while (true) {
  // comment
}
>>>
main() {
  /* comment */ statement;
}
<<<
main() {
  /* comment */ statement;
}
>>>
main() {
  code;

  /* comment */ statement;
}
<<<
main() {
  code;

  /* comment */ statement;
}
>>>
main() {
  while (b)
  /*unreachable*/ {}
}
<<<
main() {
  while (b) /*unreachable*/ {}
}