tree 40a5d4ee1a7dbf922ee4517670e33ccfa0074e44
parent d8f14e22df79f3eaf72218118ae1274b0b7cbf47
author Fredrik Roubert <roubert@google.com> 1558556199 -0700
committer Fredrik Roubert <fredrik@roubert.name> 1565889445 +0200

ICU-20601 Wrap public ICU API compound macros in do { } while.

This is the normal way of making compound macros behave like statements
and allowing macro invocations that look like function calls to work
just like if they were function calls.

Before ICU 65, function-like, multi-statement ICU macros were just
defined as series of statements wrapped in { } blocks and the caller
could choose to either treat them as if they were actual functions and
end the invocation with a trailing ; creating an empty statement after
the block or else omit this trailing ; using the knowledge that the
macro would expand to { }.

To continue supporting code that depends on that old behaviour, on being
able to omit the trailing ; when invoking one of these macros, the new
surrounding do { } while is done through preprocessor defines that can
easily be overridden at compile time, when needed.
