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