As well you should… 😉 The latest SVN (1304) does not compile anymore on Mac OS 10.4:
g++ -DHAVE_CONFIG_H -I. -I.. -Wall -I sql -Werror -g -O2 -MT apl-main.o -MD -MP -MF .deps/apl-main.Tpo -c -o apl-main.o `test -f 'main.cc' || echo './'`main.cc In file included from main.cc:34: In file included from ./Command.hh:28: In file included from ./Value.hh:24: In file included from ./CharCell.hh:24: In file included from ./Cell.hh:30: In file included from ./PrintBuffer.hh:30: ./Shape.hh:75:32: error: unknown warning group '-Wmaybe-uninitialized', ignored [-Werror,-Wunknown-warning-option] #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" ^ 1 error generated. make[3]: *** [apl-main.o] Error 1 make[2]: *** [all-recursive] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 > On Jul 1, 2020, at 22:25, Chris Moller <mol...@mollerware.com> wrote: > > Hi Chris, > > thanks for looking into this. I have added your #pragma in SVN 1303. > > I am not particular fond of #pragmas for a number of reasons, but since other > contributors to GNU APL have used them already earlier I suppose this one > should do no harm. > > Best Regards, > Jürgen > > > On 7/2/20 4:25 AM, Chris Moller wrote: >> Hi, Jürgen, >> >> CXXFLAGS=-Werror=maybe-uninitialized >> >> Way down deep in the gcc code, in tree-ssa-uninit.c, there's a statement: >> warn_uninitialized_vars (/*warn_possibly_uninitialized=*/1); >> elsewhere in the same file is: >> warn_uninitialized_vars (/*warn_possibly_uninitialized=*/!optimize); >> The former is what's causing the killer warnings. I don't have any idea why >> that one unconditionally looks for uninitialisations while the latter >> conditions on the optimisation level, but I expect it would be pointless >> trying to get the gcc people to do anything about it. Fortunately, a more >> specific version of your README-11-bogus-compiler-warnings suggestion of >> CXXFLAGS=-Werror=maybe-uninitialized >> might be what you need: make your Shape.hh pragma >> #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" >> instead of >> #pragma GCC diagnostic ignored "-Wuninitialized" >> Maybe not ideal, but maybe better than nothing. >> >> On 27/06/2020 12:16, Dr. Jürgen Sauermann wrote: >>> Hi Chris, >>> >>> this warning is haunting us for quite a while now. >>> >>> I have written a README-11-bogus-compiler-warnings with work-arounds. >>> >>> Unfortunately the loop below is not entirely bogus (what happens is that >>> for some r >>> the uninitialized value other.rho[r] is being copied to the never-used >>> value rho[r]). >>> >>> Unfortunately the obvious fix for the warning has shown to cause >>> significant perfomance >>> impacts because it prevents loop unrolling (and there was a separate >>> trouble report >>> concerning that performance drop on bug-apl). >>> >>> At that time I filed a gcc trouble report: >>> >>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94905 >>> <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94905> >>> asking to fix this, but I am afraid that this may take some time. >>> My bug report was merged into a meta-bug which is open since 2005: >>> >>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24639 >>> <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24639> >>> Best Regards, >>> Jürgen >>> >>> >>> On 6/27/20 5:01 PM, Chris Moller wrote: >>>> Shape.hh: In member function 'Shape Shape::insert_axis(Axis, ShapeItem) >>>> const': >>>> Shape.hh:69:46: error: ''target_mem_ref' not supported by >>>> dump_expr<expression error>' may be used uninitialized in this function >>>> [-Werror=maybe-uninitialized] >>>> 69 | loop(r, MAX_RANK) rho[r] = other.rho[r]; >>>> | ~~~~~~~~~~~^ >>>> >>>> Just to finish the build, I patched around the bug by editing out the Wall >>>> and the Werror in the Makefile, so: >>>> >>>> [moller@hpbox]~tinkering/gnuapl/trunk% apl -v >>>> 10:47:53 >>>> BUILDTAG: >>>> --------- >>>> Project: GNU APL >>>> Version / SVN: 1.8 / 1210 >>>> Build Date: 2019-12-19 17:09:01 UTC >>>> Build OS: Linux 4.19.3-200.fc28.x86_64 x86_64 >>>> config.status: >>>> 'PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig' >>>> Archive SVN: 1161 >>>> >>>> [moller@hpbox]~tinkering/gnuapl/trunk% gcc --version >>>> 10:49:35 >>>> gcc (GCC) 10.1.1 20200507 (Red Hat 10.1.1-1) >>>> >>>> [moller@hpbox]~tinkering/gnuapl/trunk% cat /etc/redhat-release >>>> 10:51:45 >>>> Fedora release 32 (Thirty Two) >>>> >>>> [moller@hpbox]~tinkering/gnuapl/trunk% uname -a >>>> 10:52:29 >>>> Linux hpbox 5.6.19-300.fc32.x86_64 #1 SMP Wed Jun 17 16:10:48 UTC 2020 >>>> x86_64 x86_64 x86_64 GNU/Linux >>> >> > --- Louis Chrétien lchret...@mac.com