|
From: | Dr . Jürgen Sauermann |
Subject: | Re: [Bug-apl] A few problems |
Date: | Sun, 3 Feb 2019 11:49:23 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux i686; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 |
Hi vvs, thanks, hopefully fixed in SVN 1122. The gcc guys create new warnings faster than I can fix them. Regarding the other problem: ∇A [1] A←0 ∇ when the Symbol A is resolved it immediately causes the execution of A (iff A is a niladic function). That happens before the assignment can take place. The consequence is an infinite recursion of A (which can, BTW, be limited with ⎕SYL[1;2]). Best Regards, /// Jürgen On 02/02/2019 09:01 PM, vvs wrote:
On Sat, Feb 2, 2019 at 9:08 PM Dr. Jürgen Sauermann <address@hidden> wrote:thanks for reporting this. Could you please give an example for the gcc warnings> I am using g++ 4 .8.4 and I am not getting the warnings.Of course. Here: g++ -DHAVE_CONFIG_H -I. -I.. -Wall -I sql -Wold-style-cast -Werror -I/usr/include -rdynamic -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 UTF8_string.hh:28, from LibPaths.hh:24, from Command.hh:27, from main.cc:34: Simple_string.hh: In instantiation of ‘void Simple_string<T, has_destructor>::pop() [with T = Shape; bool has_destructor = false]’: Quad_CR.hh:139:27: required from here Simple_string.hh:170:20: error: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘class Shape’; use assignment or value-initialization instead [-Werror=class-memaccess] memset(items + items_valid, 0, sizeof(T)); ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from PrintBuffer.hh:28, from Cell.hh:30, from CharCell.hh:24, from Value.hh:24, from Command.hh:28, from main.cc:34: Shape.hh:31:7: note: ‘class Shape’ declared here class Shape ^~~~~ In file included from UTF8_string.hh:28, from LibPaths.hh:24, from Command.hh:27, from main.cc:34: Simple_string.hh: In instantiation of ‘void Simple_string<T, has_destructor>::pop() [with T = SvoPid; bool has_destructor = false]’: Simple_string.hh:178:70: required from ‘void Simple_string<T, has_destructor>::shrink(ShapeItem) [with T = SvoPid; bool has_destructor = false; ShapeItem = long long int]’ ProcessorID.hh:100:26: required from here Simple_string.hh:170:20: error: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct SvoPid’ with no trivial copy-assignment; use assignment or value-initialization instead [-Werror=class-memaccess] memset(items + items_valid, 0, sizeof(T)); ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from Svar_DB.hh:30, from Symbol.hh:30, from UserFunction.hh:29, from Macro.hh:24, from main.cc:38: ProcessorID.hh:65:8: note: ‘struct SvoPid’ declared here struct SvoPid ^~~~~~ In file included from UTF8_string.hh:28, from LibPaths.hh:24, from Command.hh:27, from main.cc:34: Simple_string.hh: In instantiation of ‘void Simple_string<T, has_destructor>::pop() [with T = ProcAuth; bool has_destructor = false]’: Simple_string.hh:178:70: required from ‘void Simple_string<T, has_destructor>::shrink(ShapeItem) [with T = ProcAuth; bool has_destructor = false; ShapeItem = long long int]’ ProcessorID.hh:101:28: required from here Simple_string.hh:170:20: error: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct ProcAuth’ with no trivial copy-assignment; use assignment or value-initialization instead [-Werror=class-memaccess] memset(items + items_valid, 0, sizeof(T)); ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from Svar_DB.hh:30, from Symbol.hh:30, from UserFunction.hh:29, from Macro.hh:24, from main.cc:38: ProcessorID.hh:76:8: note: ‘struct ProcAuth’ declared here struct ProcAuth ^~~~~~~~ cc1plus: all warnings being treated as errors |
[Prev in Thread] | Current Thread | [Next in Thread] |