* PUSH_ALL macro
* do while