Sorry about that last; accidentally sent in mid-compose! Here's how it should
have read.
In remove_duplicate_local_var,
Suggest:
while (pos < local_vars.size(); ++pos) { if (sym == local_vars[pos])
{ local_vars[pos] = local_vars.back();
local_vars.pop_back(); } else ++pos }instead of:
for (; pos < local_vars.size(); ++pos) { if (sym == local_vars[pos])
{ local_vars[pos] = local_vars.back(); //[KA]
Probable bug here //[KA] local_vars[pos] still duplicates
sym //[KA] if local_vars.back() also == sym
local_vars.pop_back(); } }Two examples of headers which should elicit
the issue:
FUN;LV;LV;LV
FUN B;LV;B;B