------- Comment #3 from redi at gcc dot gnu dot org 2010-08-23 11:35 ------- (In reply to comment #2) > This is building libstdc++ 4.5.1. > You can sort of tell from the path. > I build in "obj". I don't install to "obj".
Ah yeah - the report would have been more useful with that info though, so there's no need to infer it from your choice of path. > The bootstrap compiler might have been 4.5.0. Presumably it was, or showing the output of gcc -v wasn't much use either :) > I can do it again with 4.5.1 as bootstrap. That's not likely to help. As I said, the warning is caused by definitions in the OS headers, which just get used in the libstdc++ header. > I actually think this gcc warning generally shouldn't even exist, unless maybe > presented with a union whose first member is not its largest. > Though perhaps gcc should do what Microsoft C does there -- always zero the > entire thing. That's what GCC does, as required by the standard. Presumably that's exactly what's intended and the Tru64 PTHREAD_COND_INITIALIZER macro relies on that happening, so there's no problem. I agree the warning isn't often useful, which is why it's not part of -Wall -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45347