This bug has been there since the first llvm.org checkin. I'm curious, did it actually cause a problem or did you just see it while reading?
The patch is right. Most of the other uses elide storing the position the non-unique elements got moved to, and does "indexes.erase(std::unique...)" but either form is fine by me.
clang drew my attention to it:
Symtab.cpp:620:5: warning: ignoring return value of function declared with 'warn_unused_result' attribute [-Wunused-result]
std::unique(indexes.begin(), indexes.end()); ^~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~