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 <[email protected]> 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
[email protected]