Hi Arnold and tcc folks,
Perhaps surprisingly, correcting this bug is quite costly.
Here is a tentative patch. I find it messy but working with dynamic data
and passing the cases to the block function are necessary to handle
an "unlimited number" of cases and nested switch blocks.
Also, since the 'block' function is starting to have too many arguments, I
suggest to create a structure that assembles related arguments such
that def_sym, case_sym, cases, and cases_cnt, and any other...
Does that sound ok?