[Bug libstdc++/45347] concurrence.h: In constructor '__gnu_cxx::__cond::__cond()': /home/jayk/obj/gcc451/alphaev67-dec-osf5.1/libstdc++-v3/include/ext/concurrence.h:276:29: warning: missing initialize
--- Comment #4 from paolo dot carlini at oracle dot com 2010-09-03 15:05 --- Thus, Jon, are we just missing a #pragma GCC system_header at the beginning of that file? In case, just add it and close the PR? -- paolo dot carlini at oracle dot com changed: What|Removed |Added CC||jwakely dot gcc at gmail dot ||com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45347
[Bug libstdc++/45347] concurrence.h: In constructor '__gnu_cxx::__cond::__cond()': /home/jayk/obj/gcc451/alphaev67-dec-osf5.1/libstdc++-v3/include/ext/concurrence.h:276:29: warning: missing initialize
--- Comment #5 from paolo at gcc dot gnu dot org 2010-09-03 23:19 --- Subject: Bug 45347 Author: paolo Date: Fri Sep 3 23:19:18 2010 New Revision: 163848 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=163848 Log: 2010-09-03 Paolo Carlini paolo.carl...@oracle.com PR libstdc++/45347 * include/ext/concurrence.h: Add #pragma GCC system_header. Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/include/ext/concurrence.h -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45347
[Bug libstdc++/45347] concurrence.h: In constructor '__gnu_cxx::__cond::__cond()': /home/jayk/obj/gcc451/alphaev67-dec-osf5.1/libstdc++-v3/include/ext/concurrence.h:276:29: warning: missing initialize
--- Comment #6 from paolo dot carlini at oracle dot com 2010-09-03 23:21 --- Done. -- paolo dot carlini at oracle dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED Target Milestone|--- |4.6.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45347
[Bug libstdc++/45347] concurrence.h: In constructor '__gnu_cxx::__cond::__cond()': /home/jayk/obj/gcc451/alphaev67-dec-osf5.1/libstdc++-v3/include/ext/concurrence.h:276:29: warning: missing initialize
--- Comment #1 from redi at gcc dot gnu dot org 2010-08-23 11:22 --- this report isn't much help - does the warning occur when building the library, or using it? and I doubt it makes any difference, but you've reported it against 4.5.1 and then said you're using 4.5.0 The warning means that the Tru64 definition of the PTHREAD_COND_INITIALIZER macro doesn't give an initializer for a member of the Tru64 definition of pthread_cond_t, so there's nothing libstdc++ can do except suppress the warning by adding #pragma GCC system_header to that file -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45347
[Bug libstdc++/45347] concurrence.h: In constructor '__gnu_cxx::__cond::__cond()': /home/jayk/obj/gcc451/alphaev67-dec-osf5.1/libstdc++-v3/include/ext/concurrence.h:276:29: warning: missing initialize
--- Comment #2 from jay dot krell at cornell dot edu 2010-08-23 11:26 --- 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. The bootstrap compiler might have been 4.5.0. I can do it again with 4.5.1 as bootstrap. 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. T foo = { 0 }; is just too nice of a generic portable zeroer of all types, except sometimes unions. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45347
[Bug libstdc++/45347] concurrence.h: In constructor '__gnu_cxx::__cond::__cond()': /home/jayk/obj/gcc451/alphaev67-dec-osf5.1/libstdc++-v3/include/ext/concurrence.h:276:29: warning: missing initialize
--- 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