Hi Blake, this is kind of a dilemma. On the one hand I have the ambition that the build should be as clean as possible. In the majority of cases the warnings point at something that needs to be improved. Many reports come from platforms that I do not posses, or from a compiler version that I do not use (like in the example below). On the other hand the number of bogus compiler warnings has increased significantly in the last few years and the warnings get increasingly stupid (e.g. -Wmisleading-indentation)
The idea of *README-11-bogus-compiler-warnings* was to give the user an idea of how to fix a build that is broken by a new bogus compiler warning so that I can prioritize the fix of the warning a little down without loosing the reports about the warnings. Best Regards, Jürgen On 5/1/20 4:59 PM, Blake McBride wrote: > Or, as a solution I've used in the past, don't kill the build on a > warning. Just issue the warning and keep going. This is the default > behavior of make. Errors are errors that should be fixed. Warnings > are things the compiler points out that you may want to look into. It > isn't saying they're wrong. > > I think it is often the case that making a few tweaks to minimize > warnings is good. However, as you've noted, trying to eliminate every > warning is more than a fulltime job. > > Thanks! > > Blake > > > On Fri, May 1, 2020 at 9:43 AM Dr. Jürgen Sauermann > <mail@jürgen-sauermann.de <mailto:mail@j%C3%BCrgen-sauermann.de>> wrote: > > Hi everybody, > > it seems like gcc/g++ continues to generate bogus warnings at a > rate that makes it difficult to > keep up with. For that reason I have written a > *README-11-bogus-compiler-warnings* which > explains how to deal with this. *SVN 1276*. > > Maybe somebody would like to report this as a compiler error. > Strictly speaking it is not > because the warning itself says "maybe", but IMHO it should not > occur under *-Wall* > but only under *-Wextra*. > > Best Regards, > Jürgen > > > On 5/1/20 4:06 PM, Blake McBride wrote: >> Greetings, >> >> Trying to build GNU APL rev 1275 on my 64-bit Linux box I get: >> >> [...] >> mv -f .deps/apl-Bif_OPER2_RANK.Tpo .deps/apl-Bif_OPER2_RANK.Po >> g++ -DHAVE_CONFIG_H -I. -I.. -Wall -I sql -Werror >> -I/usr/include -I/usr/include/postgresql -rdynamic -g -O2 -MT >> apl-Bif_OPER1_REDUCE.o -MD -MP -MF .deps/apl-Bif_OPER1_REDUCE.Tpo >> -c -o apl-Bif_OPER1_REDUCE.o `test -f 'Bif_OPER1_REDUCE.cc' || >> echo './'`Bif_OPER1_REDUCE.cc >> In file included from PrintBuffer.hh:30:0, >> from Cell.hh:30, >> from CharCell.hh:24, >> from Value.hh:24, >> from NamedObject.hh:25, >> from Function.hh:27, >> from PrimitiveFunction.hh:27, >> from PrimitiveOperator.hh:24, >> from Bif_OPER1_REDUCE.hh:24, >> from Bif_OPER1_REDUCE.cc:23: >> Shape.hh: In member function ‘Token >> Bif_REDUCE::reduce_n_wise(Value_P, Token&, Value_P, uAxis)’: >> Shape.hh:133:18: error: ‘shape_Z.Shape::rho[axis]’ may be used >> uninitialized in this function [-Werror=maybe-uninitialized] >> if (rho[r]) { volume /= rho[r]; rho[r] = sh; volume >> *= rho[r]; } >> ~~~~~^ >> Shape.hh:109:41: error: ‘shape_Z.Shape::rho[axis]’ may be used >> uninitialized in this function [-Werror=maybe-uninitialized] >> { Assert(r < rho_rho); return rho[r]; } >> ^ >> Shape.hh: In member function ‘Token >> Bif_REDUCE::replicate(Value_P, Value_P, uAxis)’: >> Shape.hh:133:18: error: ‘shape_Z.Shape::rho[axis]’ may be used >> uninitialized in this function [-Werror=maybe-uninitialized] >> if (rho[r]) { volume /= rho[r]; rho[r] = sh; volume >> *= rho[r]; } >> ~~~~~^ >> cc1plus: all warnings being treated as errors >> Makefile:3234: recipe for target 'apl-Bif_OPER1_REDUCE.o' failed >> make[3]: *** [apl-Bif_OPER1_REDUCE.o] Error 1 >> make[3]: Leaving directory '/home/blake/Backup/apl/src' >> Makefile:4584: recipe for target 'all-recursive' failed >> make[2]: *** [all-recursive] Error 1 >> make[2]: Leaving directory '/home/blake/Backup/apl/src' >> Makefile:522: recipe for target 'all-recursive' failed >> make[1]: *** [all-recursive] Error 1 >> make[1]: Leaving directory '/home/blake/Backup/apl' >> Makefile:409: recipe for target 'all' failed >> make: *** [all] Error 2 >> >
