va_end- макрос до resetarg_ptr.
После доступа к списку аргументов переменных указатель arg_ptr обычно reset с va_end(). Я понимаю, что это требуется, если вы хотите переименовать список, но действительно ли это необходимо, если вы этого не сделаете? Это просто хорошая практика, как правило "всегда есть default: в вашем switch"?