i would use a  
do {
xxx
xxx
} while(0); 
instead.   the macro you defined also should include a "break; at the end."