http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51188
--- Comment #12 from Jason Merrill <jason at gcc dot gnu.org> 2011-11-17 21:03:31 UTC --- (In reply to comment #6) > do > - field = fields[i--]; > + field = strip_using_decl (fields[i--]); > while (i >= lo && DECL_NAME (fields[i]) == name); Let's wait and strip_using_decl after the loop (i.e. at the return statement), since a USING_DECL has the same name. We also need to check is_overloaded_decl.