Bug 90923 shows that even though GCC hash-table based containers like hash_map can be instantiated on types with user-defined ctors and dtors they invoke the dtors of such types without invoking the corresponding ctors. It was thanks to this bug that I spent a day debugging "interesting" miscompilations during GCC bootstrap (in fairness, it was that and bug 90904 about auto_vec copy assignment/construction also being hosed even for POD types). The attached patch corrects the hash_map and hash_set templates to invoke the ctors of the elements they insert and makes them (hopefully) safe to use with non-trivial user-defined types. Tested on x86_64-linux. Martin