bugGNU Octave - Bugs: bug #57557, parsing error when classdef...

 
 

bug #57557: parsing error when classdef constant property expression references another property

Submitter:  None
Submitted:  Wed 08 Jan 2020 01:56:01 PM UTC
   
 
Category:  Classdef Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Unexpected Error or Warning
Status:  Confirmed Assigned to:  None
Originator Name:  Richard Zuber Originator Email:  -email is unavailable-
Open/Closed:  * Open Release:  * dev
Operating System:  * Any Fixed Release:  None
Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Sun 28 Jan 2024 12:50:00 AM UTC, comment #8: 

At least in the current sources, there is no longer a segfault.  The error message I get is


error: no such file, '/home/rik/wip/Projects_Mine/octave-dev/cdef_const_crash.m'
error: called from
    <unknown>


Rik <rik5>
Group administrator
Mon 12 Jul 2021 02:40:11 PM UTC, comment #7: 

With the current sources, I see


octave:2> testCrashConstants
error: max_stack_depth exceeded
error: called from
    <unknown>


Running Octave with gdb and doing "catch throw" to find what is happening when this error is thrown, I see that Octave is repeatedly parsing testCrashConstants.m and calling "octave::tree_classdef::make_meta_class".  Probably the solution is to defer initialization of property values until classdef object has been completely parsed and installed.

Setting the release to "dev".

John W. Eaton <jwe>
Group administrator
Fri 19 Mar 2021 06:38:24 PM UTC, comment #6: 

see bug #60006 "Octave crashes when defclass properties reuses named constant". The bug is present in Windows releases, and referenced anomaly report contains scenarios for reproducing problem.

PIERRE LABRECHE <pierre5018>
Fri 19 Mar 2021 06:34:08 PM UTC, comment #5: 

There have been other reports for this with newer versions of Octave on Windows.

Adapting tags.

Markus Mützel <mmuetzel>
Group administrator
Wed 08 Jan 2020 05:08:01 PM UTC, comment #4: 

Why does it say "no such file" if it is obviously there.

Dmitri.

Dmitri A. Sergatskov <dasergatskov>
Wed 08 Jan 2020 05:05:32 PM UTC, comment #3: 

When run under the development branch of Octave I also get the error in "<unknown>" message.  This just seems to be a difference between 5.1 and the future 6.1 release.  In both cases, Octave should be able to parse this.

Rik <rik5>
Group administrator
Wed 08 Jan 2020 04:24:37 PM UTC, comment #2: 

Hmm...



octave -f -q
octave:1> testCrashConstants.FOO
error: no such file, '/home/dima/scratch/testCrashConstants.m'
error: called from
    <unknown>
octave:2> ls
testCrashConstants.m
octave:3> type testCrashConstants.m
testCrashConstants.m is the user-defined function defined from: /home/dima/scratch/testCrashConstants.m

classdef testCrashConstants
    properties( Constant = true )

        FOO = 2;
        BAR = 4;
        FOOBAR = testCrashConstants.FOO * testCrashConstants.BAR;
    end
end


octave:4> pwd
ans = /home/dima/scratch
octave:5>



Dmitri.
--

Dmitri A. Sergatskov <dasergatskov>
Wed 08 Jan 2020 04:19:00 PM UTC, comment #1: 

This is valid syntax.  I believe there is another bug report about derived properties which is similar.

I don't, however, get a segmentation fault.  This might be just something unlucky about your machine and how bits of code were arrange in memory.

I ran octave with the '-f' switch to avoid any user start-up files which might be influencing this.  I get


~/wip/Projects_Mine/octave-dev: octave-cli-5.1.0 -f -q
octave:1> testCrashConstants.FOO
error: no such file, '/home/.../wip/Projects_Mine/octave-dev/testCrashConstants.m'
octave:1>


Unfortunately, I don't know of any work around at the moment.


Rik <rik5>
Group administrator
Wed 08 Jan 2020 01:56:01 PM UTC, original submission:  

I have encountered a segmentation fault in octave 5.1 when utilizing a constant defined in a classdef property. 

Constants are defined in an .m file on the path like so:

testCrashConstants.m

classdef testCrashConstants
    properties( Constant = true )

        FOO = 2;
        BAR = 4;
        FOOBAR = testCrashConstants.FOO * testCrashConstants.BAR;
    end
end


The crash can then be triggered by accessing any variable defined in the file.


$>octave-cli
octave:1> testCrashConstants.FOO
Segmentation fault (core dumped)

$>octave-cli
octave:1> testCrashConstants.BAR
Segmentation fault (core dumped)

$>octave-cli
octave:1> testCrashConstants.FOOBAR
Segmentation fault (core dumped)


Commenting out the line 6 FOOBAR definition makes it such that the FOO and BAR can be accessed normally, so I would guess it has to do with having a derived constant in the file.  That said, the same approach runs in MATLAB without issue, so I believe this is valid syntax.  If not supported by octave, I would expect an error message rather than a crash.

Below is a full stacktrace:


ASAN:DEADLYSIGNAL
=================================================================
==3726==ERROR: AddressSanitizer: stack-overflow on address 0x7ffe9c74bff8 (pc 0x7f975730d65d bp 0x7f97579c4320 sp 0x7ffe9c74c000 T0)
    #0 0x7f975730d65c  (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x10365c)
    #1 0x7f975730d0f7  (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x1030f7)
    #2 0x7f975723347c  (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x2947c)
    #3 0x7f97572ea41e in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe041e)
    #4 0x7f9755d5b2a1 in __gnu_cxx::new_allocator<std::_List_node<octave::tree_classdef_attribute*> >::allocate(unsigned long, void const*) (/home/zuber/octave/octave-5.1.0/libinterp/.libs/liboctinterp.so.7+0x16fc2a1)
    #5 0x7f9755d59f3e in std::allocator_traits<std::allocator<std::_List_node<octave::tree_classdef_attribute*> > >::allocate(std::allocator<std::_List_node<octave::tree_classdef_attribute*> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436
    #6 0x7f9755d57942 in std::__cxx11::_List_base<octave::tree_classdef_attribute*, std::allocator<octave::tree_classdef_attribute*> >::_M_get_node() /usr/include/c++/7/bits/stl_list.h:383
    #7 0x7f9755d52ca8 in std::_List_node<octave::tree_classdef_attribute*>* std::__cxx11::list<octave::tree_classdef_attribute*, std::allocator<octave::tree_classdef_attribute*> >::_M_create_node<octave::tree_classdef_attribute* const&>(octave::tree_classdef_attribute* const&) /usr/include/c++/7/bits/stl_list.h:572
    #8 0x7f9755d4c833 in void std::__cxx11::list<octave::tree_classdef_attribute*, std::allocator<octave::tree_classdef_attribute*> >::_M_insert<octave::tree_classdef_attribute* const&>(std::_List_iterator<octave::tree_classdef_attribute*>, octave::tree_classdef_attribute* const&) /usr/include/c++/7/bits/stl_list.h:1801
    #9 0x7f9755d47671 in std::__cxx11::list<octave::tree_classdef_attribute*, std::allocator<octave::tree_classdef_attribute*> >::push_back(octave::tree_classdef_attribute* const&) (/home/zuber/octave/octave-5.1.0/libinterp/.libs/liboctinterp.so.7+0x16e8671)
    #10 0x7f9755d42fe2 in octave::base_list<octave::tree_classdef_attribute*>::append(octave::tree_classdef_attribute* const&) (/home/zuber/octave/octave-5.1.0/libinterp/.libs/liboctinterp.so.7+0x16e3fe2)
    #11 0x7f9755d3e1d8 in octave::tree_classdef_attribute_list::tree_classdef_attribute_list(octave::tree_classdef_attribute*) (/home/zuber/octave/octave-5.1.0/libinterp/.libs/liboctinterp.so.7+0x16df1d8)
    #12 0x7f9755d11509 in octave_push_parse(octave_pstate*, int, OCTAVE_STYPE const*, octave::base_parser&) /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:1692
    #13 0x7f9755cff95f in octave_pull_parse(octave_pstate*, octave::base_parser&) libinterp/parse-tree/oct-parse.cc:2999
    #14 0x7f9755d29bf5 in octave::parser::run() /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:4375
    #15 0x7f9755d2ad6c in parse_fcn_file /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:4534
    #16 0x7f9755d2e893 in octave::load_fcn_from_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:4779
    #17 0x7f9756063b51 in octave::fcn_info::fcn_info_rep::find_user_function() libinterp/corefcn/fcn-info.cc:750
    #18 0x7f975605d34a in octave::fcn_info::fcn_info_rep::load_class_constructor() libinterp/corefcn/fcn-info.cc:123
    #19 0x7f9756060cc5 in octave::fcn_info::fcn_info_rep::xfind(octave_value_list const&) libinterp/corefcn/fcn-info.cc:467
    #20 0x7f975605f8d4 in octave::fcn_info::fcn_info_rep::find(octave_value_list const&) libinterp/corefcn/fcn-info.cc:350
    #21 0x7f97568783ab in octave::fcn_info::find(octave_value_list const&) libinterp/corefcn/fcn-info.h:242
    #22 0x7f9756873348 in octave::symbol_table::fcn_table_find(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) libinterp/corefcn/symtab.cc:393
    #23 0x7f9756873b3c in octave::symbol_table::find_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) libinterp/corefcn/symtab.cc:439
    #24 0x7f97568695e0 in octave::symbol_record::find_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) const libinterp/corefcn/symrec.cc:117
    #25 0x7f9755daf19b in octave::symbol_record::find(unsigned long, octave_value_list const&) const libinterp/corefcn/symrec.h:593
    #26 0x7f9755d97ceb in octave::tree_evaluator::visit_identifier(octave::tree_identifier&) libinterp/parse-tree/pt-eval.cc:1773
    #27 0x7f9755d3c238 in octave::tree_identifier::accept(octave::tree_walker&) libinterp/parse-tree/pt-id.h:134
    #28 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #29 0x7f9755d99d39 in octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&) libinterp/parse-tree/pt-eval.cc:2042
    #30 0x7f9755dd475e in octave::tree_index_expression::accept(octave::tree_walker&) libinterp/parse-tree/pt-idx.h:102
    #31 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #32 0x7f9755d8a83f in octave::tree_evaluator::visit_binary_expression(octave::tree_binary_expression&) libinterp/parse-tree/pt-eval.cc:422
    #33 0x7f9755d79118 in octave::tree_binary_expression::accept(octave::tree_walker&) (/home/zuber/octave/octave-5.1.0/libinterp/.libs/liboctinterp.so.7+0x171a118)
    #34 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #35 0x7f97559c2da4 in cdef_class::make_meta_class(octave::interpreter&, octave::tree_classdef*, bool) libinterp/octave-value/ov-classdef.cc:2917
    #36 0x7f9755d82bf2 in octave::tree_classdef::make_meta_class(octave::interpreter&, bool) libinterp/parse-tree/pt-classdef.cc:150
    #37 0x7f9755d2aee5 in parse_fcn_file /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:4554
    #38 0x7f9755d2e893 in octave::load_fcn_from_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:4779
    #39 0x7f9756063b51 in octave::fcn_info::fcn_info_rep::find_user_function() libinterp/corefcn/fcn-info.cc:750
    #40 0x7f975605d34a in octave::fcn_info::fcn_info_rep::load_class_constructor() libinterp/corefcn/fcn-info.cc:123
    #41 0x7f9756060cc5 in octave::fcn_info::fcn_info_rep::xfind(octave_value_list const&) libinterp/corefcn/fcn-info.cc:467
    #42 0x7f975605f8d4 in octave::fcn_info::fcn_info_rep::find(octave_value_list const&) libinterp/corefcn/fcn-info.cc:350
    #43 0x7f97568783ab in octave::fcn_info::find(octave_value_list const&) libinterp/corefcn/fcn-info.h:242
    #44 0x7f9756873348 in octave::symbol_table::fcn_table_find(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) libinterp/corefcn/symtab.cc:393
    #45 0x7f9756873b3c in octave::symbol_table::find_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) libinterp/corefcn/symtab.cc:439
    #46 0x7f97568695e0 in octave::symbol_record::find_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) const libinterp/corefcn/symrec.cc:117
    #47 0x7f9755daf19b in octave::symbol_record::find(unsigned long, octave_value_list const&) const libinterp/corefcn/symrec.h:593
    #48 0x7f9755d97ceb in octave::tree_evaluator::visit_identifier(octave::tree_identifier&) libinterp/parse-tree/pt-eval.cc:1773
    #49 0x7f9755d3c238 in octave::tree_identifier::accept(octave::tree_walker&) libinterp/parse-tree/pt-id.h:134
    #50 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #51 0x7f9755d99d39 in octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&) libinterp/parse-tree/pt-eval.cc:2042
    #52 0x7f9755dd475e in octave::tree_index_expression::accept(octave::tree_walker&) libinterp/parse-tree/pt-idx.h:102
    #53 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #54 0x7f9755d8a83f in octave::tree_evaluator::visit_binary_expression(octave::tree_binary_expression&) libinterp/parse-tree/pt-eval.cc:422
    #55 0x7f9755d79118 in octave::tree_binary_expression::accept(octave::tree_walker&) (/home/zuber/octave/octave-5.1.0/libinterp/.libs/liboctinterp.so.7+0x171a118)
    #56 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #57 0x7f97559c2da4 in cdef_class::make_meta_class(octave::interpreter&, octave::tree_classdef*, bool) libinterp/octave-value/ov-classdef.cc:2917
    #58 0x7f9755d82bf2 in octave::tree_classdef::make_meta_class(octave::interpreter&, bool) libinterp/parse-tree/pt-classdef.cc:150
    #59 0x7f9755d2aee5 in parse_fcn_file /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:4554
    #60 0x7f9755d2e893 in octave::load_fcn_from_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:4779
    #61 0x7f9756063b51 in octave::fcn_info::fcn_info_rep::find_user_function() libinterp/corefcn/fcn-info.cc:750
    #62 0x7f975605d34a in octave::fcn_info::fcn_info_rep::load_class_constructor() libinterp/corefcn/fcn-info.cc:123
    #63 0x7f9756060cc5 in octave::fcn_info::fcn_info_rep::xfind(octave_value_list const&) libinterp/corefcn/fcn-info.cc:467
    #64 0x7f975605f8d4 in octave::fcn_info::fcn_info_rep::find(octave_value_list const&) libinterp/corefcn/fcn-info.cc:350
    #65 0x7f97568783ab in octave::fcn_info::find(octave_value_list const&) libinterp/corefcn/fcn-info.h:242
    #66 0x7f9756873348 in octave::symbol_table::fcn_table_find(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) libinterp/corefcn/symtab.cc:393
    #67 0x7f9756873b3c in octave::symbol_table::find_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) libinterp/corefcn/symtab.cc:439
    #68 0x7f97568695e0 in octave::symbol_record::find_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) const libinterp/corefcn/symrec.cc:117
    #69 0x7f9755daf19b in octave::symbol_record::find(unsigned long, octave_value_list const&) const libinterp/corefcn/symrec.h:593
    #70 0x7f9755d97ceb in octave::tree_evaluator::visit_identifier(octave::tree_identifier&) libinterp/parse-tree/pt-eval.cc:1773
    #71 0x7f9755d3c238 in octave::tree_identifier::accept(octave::tree_walker&) libinterp/parse-tree/pt-id.h:134
    #72 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #73 0x7f9755d99d39 in octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&) libinterp/parse-tree/pt-eval.cc:2042
    #74 0x7f9755dd475e in octave::tree_index_expression::accept(octave::tree_walker&) libinterp/parse-tree/pt-idx.h:102
    #75 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #76 0x7f9755d8a83f in octave::tree_evaluator::visit_binary_expression(octave::tree_binary_expression&) libinterp/parse-tree/pt-eval.cc:422
    #77 0x7f9755d79118 in octave::tree_binary_expression::accept(octave::tree_walker&) (/home/zuber/octave/octave-5.1.0/libinterp/.libs/liboctinterp.so.7+0x171a118)
    #78 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #79 0x7f97559c2da4 in cdef_class::make_meta_class(octave::interpreter&, octave::tree_classdef*, bool) libinterp/octave-value/ov-classdef.cc:2917
    #80 0x7f9755d82bf2 in octave::tree_classdef::make_meta_class(octave::interpreter&, bool) libinterp/parse-tree/pt-classdef.cc:150
    #81 0x7f9755d2aee5 in parse_fcn_file /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:4554
    #82 0x7f9755d2e893 in octave::load_fcn_from_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:4779
    #83 0x7f9756063b51 in octave::fcn_info::fcn_info_rep::find_user_function() libinterp/corefcn/fcn-info.cc:750
    #84 0x7f975605d34a in octave::fcn_info::fcn_info_rep::load_class_constructor() libinterp/corefcn/fcn-info.cc:123
    #85 0x7f9756060cc5 in octave::fcn_info::fcn_info_rep::xfind(octave_value_list const&) libinterp/corefcn/fcn-info.cc:467
    #86 0x7f975605f8d4 in octave::fcn_info::fcn_info_rep::find(octave_value_list const&) libinterp/corefcn/fcn-info.cc:350
    #87 0x7f97568783ab in octave::fcn_info::find(octave_value_list const&) libinterp/corefcn/fcn-info.h:242
    #88 0x7f9756873348 in octave::symbol_table::fcn_table_find(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) libinterp/corefcn/symtab.cc:393
    #89 0x7f9756873b3c in octave::symbol_table::find_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) libinterp/corefcn/symtab.cc:439
    #90 0x7f97568695e0 in octave::symbol_record::find_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) const libinterp/corefcn/symrec.cc:117
    #91 0x7f9755daf19b in octave::symbol_record::find(unsigned long, octave_value_list const&) const libinterp/corefcn/symrec.h:593
    #92 0x7f9755d97ceb in octave::tree_evaluator::visit_identifier(octave::tree_identifier&) libinterp/parse-tree/pt-eval.cc:1773
    #93 0x7f9755d3c238 in octave::tree_identifier::accept(octave::tree_walker&) libinterp/parse-tree/pt-id.h:134
    #94 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #95 0x7f9755d99d39 in octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&) libinterp/parse-tree/pt-eval.cc:2042
    #96 0x7f9755dd475e in octave::tree_index_expression::accept(octave::tree_walker&) libinterp/parse-tree/pt-idx.h:102
    #97 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #98 0x7f9755d8a83f in octave::tree_evaluator::visit_binary_expression(octave::tree_binary_expression&) libinterp/parse-tree/pt-eval.cc:422
    #99 0x7f9755d79118 in octave::tree_binary_expression::accept(octave::tree_walker&) (/home/zuber/octave/octave-5.1.0/libinterp/.libs/liboctinterp.so.7+0x171a118)
    #100 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #101 0x7f97559c2da4 in cdef_class::make_meta_class(octave::interpreter&, octave::tree_classdef*, bool) libinterp/octave-value/ov-classdef.cc:2917
    #102 0x7f9755d82bf2 in octave::tree_classdef::make_meta_class(octave::interpreter&, bool) libinterp/parse-tree/pt-classdef.cc:150
    #103 0x7f9755d2aee5 in parse_fcn_file /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:4554
    #104 0x7f9755d2e893 in octave::load_fcn_from_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:4779
    #105 0x7f9756063b51 in octave::fcn_info::fcn_info_rep::find_user_function() libinterp/corefcn/fcn-info.cc:750
    #106 0x7f975605d34a in octave::fcn_info::fcn_info_rep::load_class_constructor() libinterp/corefcn/fcn-info.cc:123
    #107 0x7f9756060cc5 in octave::fcn_info::fcn_info_rep::xfind(octave_value_list const&) libinterp/corefcn/fcn-info.cc:467
    #108 0x7f975605f8d4 in octave::fcn_info::fcn_info_rep::find(octave_value_list const&) libinterp/corefcn/fcn-info.cc:350
    #109 0x7f97568783ab in octave::fcn_info::find(octave_value_list const&) libinterp/corefcn/fcn-info.h:242
    #110 0x7f9756873348 in octave::symbol_table::fcn_table_find(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) libinterp/corefcn/symtab.cc:393
    #111 0x7f9756873b3c in octave::symbol_table::find_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) libinterp/corefcn/symtab.cc:439
    #112 0x7f97568695e0 in octave::symbol_record::find_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) const libinterp/corefcn/symrec.cc:117
    #113 0x7f9755daf19b in octave::symbol_record::find(unsigned long, octave_value_list const&) const libinterp/corefcn/symrec.h:593
    #114 0x7f9755d97ceb in octave::tree_evaluator::visit_identifier(octave::tree_identifier&) libinterp/parse-tree/pt-eval.cc:1773
    #115 0x7f9755d3c238 in octave::tree_identifier::accept(octave::tree_walker&) libinterp/parse-tree/pt-id.h:134
    #116 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #117 0x7f9755d99d39 in octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&) libinterp/parse-tree/pt-eval.cc:2042
    #118 0x7f9755dd475e in octave::tree_index_expression::accept(octave::tree_walker&) libinterp/parse-tree/pt-idx.h:102
    #119 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #120 0x7f9755d8a83f in octave::tree_evaluator::visit_binary_expression(octave::tree_binary_expression&) libinterp/parse-tree/pt-eval.cc:422
    #121 0x7f9755d79118 in octave::tree_binary_expression::accept(octave::tree_walker&) (/home/zuber/octave/octave-5.1.0/libinterp/.libs/liboctinterp.so.7+0x171a118)
    #122 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #123 0x7f97559c2da4 in cdef_class::make_meta_class(octave::interpreter&, octave::tree_classdef*, bool) libinterp/octave-value/ov-classdef.cc:2917
    #124 0x7f9755d82bf2 in octave::tree_classdef::make_meta_class(octave::interpreter&, bool) libinterp/parse-tree/pt-classdef.cc:150
    #125 0x7f9755d2aee5 in parse_fcn_file /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:4554
    #126 0x7f9755d2e893 in octave::load_fcn_from_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:4779
    #127 0x7f9756063b51 in octave::fcn_info::fcn_info_rep::find_user_function() libinterp/corefcn/fcn-info.cc:750
    #128 0x7f975605d34a in octave::fcn_info::fcn_info_rep::load_class_constructor() libinterp/corefcn/fcn-info.cc:123
    #129 0x7f9756060cc5 in octave::fcn_info::fcn_info_rep::xfind(octave_value_list const&) libinterp/corefcn/fcn-info.cc:467
    #130 0x7f975605f8d4 in octave::fcn_info::fcn_info_rep::find(octave_value_list const&) libinterp/corefcn/fcn-info.cc:350
    #131 0x7f97568783ab in octave::fcn_info::find(octave_value_list const&) libinterp/corefcn/fcn-info.h:242
    #132 0x7f9756873348 in octave::symbol_table::fcn_table_find(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) libinterp/corefcn/symtab.cc:393
    #133 0x7f9756873b3c in octave::symbol_table::find_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) libinterp/corefcn/symtab.cc:439
    #134 0x7f97568695e0 in octave::symbol_record::find_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) const libinterp/corefcn/symrec.cc:117
    #135 0x7f9755daf19b in octave::symbol_record::find(unsigned long, octave_value_list const&) const libinterp/corefcn/symrec.h:593
    #136 0x7f9755d97ceb in octave::tree_evaluator::visit_identifier(octave::tree_identifier&) libinterp/parse-tree/pt-eval.cc:1773
    #137 0x7f9755d3c238 in octave::tree_identifier::accept(octave::tree_walker&) libinterp/parse-tree/pt-id.h:134
    #138 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #139 0x7f9755d99d39 in octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&) libinterp/parse-tree/pt-eval.cc:2042
    #140 0x7f9755dd475e in octave::tree_index_expression::accept(octave::tree_walker&) libinterp/parse-tree/pt-idx.h:102
    #141 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #142 0x7f9755d8a83f in octave::tree_evaluator::visit_binary_expression(octave::tree_binary_expression&) libinterp/parse-tree/pt-eval.cc:422
    #143 0x7f9755d79118 in octave::tree_binary_expression::accept(octave::tree_walker&) (/home/zuber/octave/octave-5.1.0/libinterp/.libs/liboctinterp.so.7+0x171a118)
    #144 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #145 0x7f97559c2da4 in cdef_class::make_meta_class(octave::interpreter&, octave::tree_classdef*, bool) libinterp/octave-value/ov-classdef.cc:2917
    #146 0x7f9755d82bf2 in octave::tree_classdef::make_meta_class(octave::interpreter&, bool) libinterp/parse-tree/pt-classdef.cc:150
    #147 0x7f9755d2aee5 in parse_fcn_file /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:4554
    #148 0x7f9755d2e893 in octave::load_fcn_from_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:4779
    #149 0x7f9756063b51 in octave::fcn_info::fcn_info_rep::find_user_function() libinterp/corefcn/fcn-info.cc:750
    #150 0x7f975605d34a in octave::fcn_info::fcn_info_rep::load_class_constructor() libinterp/corefcn/fcn-info.cc:123
    #151 0x7f9756060cc5 in octave::fcn_info::fcn_info_rep::xfind(octave_value_list const&) libinterp/corefcn/fcn-info.cc:467
    #152 0x7f975605f8d4 in octave::fcn_info::fcn_info_rep::find(octave_value_list const&) libinterp/corefcn/fcn-info.cc:350
    #153 0x7f97568783ab in octave::fcn_info::find(octave_value_list const&) libinterp/corefcn/fcn-info.h:242
    #154 0x7f9756873348 in octave::symbol_table::fcn_table_find(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) libinterp/corefcn/symtab.cc:393
    #155 0x7f9756873b3c in octave::symbol_table::find_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) libinterp/corefcn/symtab.cc:439
    #156 0x7f97568695e0 in octave::symbol_record::find_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) const libinterp/corefcn/symrec.cc:117
    #157 0x7f9755daf19b in octave::symbol_record::find(unsigned long, octave_value_list const&) const libinterp/corefcn/symrec.h:593
    #158 0x7f9755d97ceb in octave::tree_evaluator::visit_identifier(octave::tree_identifier&) libinterp/parse-tree/pt-eval.cc:1773
    #159 0x7f9755d3c238 in octave::tree_identifier::accept(octave::tree_walker&) libinterp/parse-tree/pt-id.h:134
    #160 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #161 0x7f9755d99d39 in octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&) libinterp/parse-tree/pt-eval.cc:2042
    #162 0x7f9755dd475e in octave::tree_index_expression::accept(octave::tree_walker&) libinterp/parse-tree/pt-idx.h:102
    #163 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #164 0x7f9755d8a83f in octave::tree_evaluator::visit_binary_expression(octave::tree_binary_expression&) libinterp/parse-tree/pt-eval.cc:422
    #165 0x7f9755d79118 in octave::tree_binary_expression::accept(octave::tree_walker&) (/home/zuber/octave/octave-5.1.0/libinterp/.libs/liboctinterp.so.7+0x171a118)
    #166 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #167 0x7f97559c2da4 in cdef_class::make_meta_class(octave::interpreter&, octave::tree_classdef*, bool) libinterp/octave-value/ov-classdef.cc:2917
    #168 0x7f9755d82bf2 in octave::tree_classdef::make_meta_class(octave::interpreter&, bool) libinterp/parse-tree/pt-classdef.cc:150
    #169 0x7f9755d2aee5 in parse_fcn_file /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:4554
    #170 0x7f9755d2e893 in octave::load_fcn_from_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:4779
    #171 0x7f9756063b51 in octave::fcn_info::fcn_info_rep::find_user_function() libinterp/corefcn/fcn-info.cc:750
    #172 0x7f975605d34a in octave::fcn_info::fcn_info_rep::load_class_constructor() libinterp/corefcn/fcn-info.cc:123
    #173 0x7f9756060cc5 in octave::fcn_info::fcn_info_rep::xfind(octave_value_list const&) libinterp/corefcn/fcn-info.cc:467
    #174 0x7f975605f8d4 in octave::fcn_info::fcn_info_rep::find(octave_value_list const&) libinterp/corefcn/fcn-info.cc:350
    #175 0x7f97568783ab in octave::fcn_info::find(octave_value_list const&) libinterp/corefcn/fcn-info.h:242
    #176 0x7f9756873348 in octave::symbol_table::fcn_table_find(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) libinterp/corefcn/symtab.cc:393
    #177 0x7f9756873b3c in octave::symbol_table::find_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) libinterp/corefcn/symtab.cc:439
    #178 0x7f97568695e0 in octave::symbol_record::find_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) const libinterp/corefcn/symrec.cc:117
    #179 0x7f9755daf19b in octave::symbol_record::find(unsigned long, octave_value_list const&) const libinterp/corefcn/symrec.h:593
    #180 0x7f9755d97ceb in octave::tree_evaluator::visit_identifier(octave::tree_identifier&) libinterp/parse-tree/pt-eval.cc:1773
    #181 0x7f9755d3c238 in octave::tree_identifier::accept(octave::tree_walker&) libinterp/parse-tree/pt-id.h:134
    #182 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #183 0x7f9755d99d39 in octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&) libinterp/parse-tree/pt-eval.cc:2042
    #184 0x7f9755dd475e in octave::tree_index_expression::accept(octave::tree_walker&) libinterp/parse-tree/pt-idx.h:102
    #185 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #186 0x7f9755d8a83f in octave::tree_evaluator::visit_binary_expression(octave::tree_binary_expression&) libinterp/parse-tree/pt-eval.cc:422
    #187 0x7f9755d79118 in octave::tree_binary_expression::accept(octave::tree_walker&) (/home/zuber/octave/octave-5.1.0/libinterp/.libs/liboctinterp.so.7+0x171a118)
    #188 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #189 0x7f97559c2da4 in cdef_class::make_meta_class(octave::interpreter&, octave::tree_classdef*, bool) libinterp/octave-value/ov-classdef.cc:2917
    #190 0x7f9755d82bf2 in octave::tree_classdef::make_meta_class(octave::interpreter&, bool) libinterp/parse-tree/pt-classdef.cc:150
    #191 0x7f9755d2aee5 in parse_fcn_file /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:4554
    #192 0x7f9755d2e893 in octave::load_fcn_from_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:4779
    #193 0x7f9756063b51 in octave::fcn_info::fcn_info_rep::find_user_function() libinterp/corefcn/fcn-info.cc:750
    #194 0x7f975605d34a in octave::fcn_info::fcn_info_rep::load_class_constructor() libinterp/corefcn/fcn-info.cc:123
    #195 0x7f9756060cc5 in octave::fcn_info::fcn_info_rep::xfind(octave_value_list const&) libinterp/corefcn/fcn-info.cc:467
    #196 0x7f975605f8d4 in octave::fcn_info::fcn_info_rep::find(octave_value_list const&) libinterp/corefcn/fcn-info.cc:350
    #197 0x7f97568783ab in octave::fcn_info::find(octave_value_list const&) libinterp/corefcn/fcn-info.h:242
    #198 0x7f9756873348 in octave::symbol_table::fcn_table_find(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) libinterp/corefcn/symtab.cc:393
    #199 0x7f9756873b3c in octave::symbol_table::find_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) libinterp/corefcn/symtab.cc:439
    #200 0x7f97568695e0 in octave::symbol_record::find_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) const libinterp/corefcn/symrec.cc:117
    #201 0x7f9755daf19b in octave::symbol_record::find(unsigned long, octave_value_list const&) const libinterp/corefcn/symrec.h:593
    #202 0x7f9755d97ceb in octave::tree_evaluator::visit_identifier(octave::tree_identifier&) libinterp/parse-tree/pt-eval.cc:1773
    #203 0x7f9755d3c238 in octave::tree_identifier::accept(octave::tree_walker&) libinterp/parse-tree/pt-id.h:134
    #204 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #205 0x7f9755d99d39 in octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&) libinterp/parse-tree/pt-eval.cc:2042
    #206 0x7f9755dd475e in octave::tree_index_expression::accept(octave::tree_walker&) libinterp/parse-tree/pt-idx.h:102
    #207 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #208 0x7f9755d8a83f in octave::tree_evaluator::visit_binary_expression(octave::tree_binary_expression&) libinterp/parse-tree/pt-eval.cc:422
    #209 0x7f9755d79118 in octave::tree_binary_expression::accept(octave::tree_walker&) (/home/zuber/octave/octave-5.1.0/libinterp/.libs/liboctinterp.so.7+0x171a118)
    #210 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #211 0x7f97559c2da4 in cdef_class::make_meta_class(octave::interpreter&, octave::tree_classdef*, bool) libinterp/octave-value/ov-classdef.cc:2917
    #212 0x7f9755d82bf2 in octave::tree_classdef::make_meta_class(octave::interpreter&, bool) libinterp/parse-tree/pt-classdef.cc:150
    #213 0x7f9755d2aee5 in parse_fcn_file /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:4554
    #214 0x7f9755d2e893 in octave::load_fcn_from_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:4779
    #215 0x7f9756063b51 in octave::fcn_info::fcn_info_rep::find_user_function() libinterp/corefcn/fcn-info.cc:750
    #216 0x7f975605d34a in octave::fcn_info::fcn_info_rep::load_class_constructor() libinterp/corefcn/fcn-info.cc:123
    #217 0x7f9756060cc5 in octave::fcn_info::fcn_info_rep::xfind(octave_value_list const&) libinterp/corefcn/fcn-info.cc:467
    #218 0x7f975605f8d4 in octave::fcn_info::fcn_info_rep::find(octave_value_list const&) libinterp/corefcn/fcn-info.cc:350
    #219 0x7f97568783ab in octave::fcn_info::find(octave_value_list const&) libinterp/corefcn/fcn-info.h:242
    #220 0x7f9756873348 in octave::symbol_table::fcn_table_find(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) libinterp/corefcn/symtab.cc:393
    #221 0x7f9756873b3c in octave::symbol_table::find_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) libinterp/corefcn/symtab.cc:439
    #222 0x7f97568695e0 in octave::symbol_record::find_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) const libinterp/corefcn/symrec.cc:117
    #223 0x7f9755daf19b in octave::symbol_record::find(unsigned long, octave_value_list const&) const libinterp/corefcn/symrec.h:593
    #224 0x7f9755d97ceb in octave::tree_evaluator::visit_identifier(octave::tree_identifier&) libinterp/parse-tree/pt-eval.cc:1773
    #225 0x7f9755d3c238 in octave::tree_identifier::accept(octave::tree_walker&) libinterp/parse-tree/pt-id.h:134
    #226 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #227 0x7f9755d99d39 in octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&) libinterp/parse-tree/pt-eval.cc:2042
    #228 0x7f9755dd475e in octave::tree_index_expression::accept(octave::tree_walker&) libinterp/parse-tree/pt-idx.h:102
    #229 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #230 0x7f9755d8a83f in octave::tree_evaluator::visit_binary_expression(octave::tree_binary_expression&) libinterp/parse-tree/pt-eval.cc:422
    #231 0x7f9755d79118 in octave::tree_binary_expression::accept(octave::tree_walker&) (/home/zuber/octave/octave-5.1.0/libinterp/.libs/liboctinterp.so.7+0x171a118)
    #232 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #233 0x7f97559c2da4 in cdef_class::make_meta_class(octave::interpreter&, octave::tree_classdef*, bool) libinterp/octave-value/ov-classdef.cc:2917
    #234 0x7f9755d82bf2 in octave::tree_classdef::make_meta_class(octave::interpreter&, bool) libinterp/parse-tree/pt-classdef.cc:150
    #235 0x7f9755d2aee5 in parse_fcn_file /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:4554
    #236 0x7f9755d2e893 in octave::load_fcn_from_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) /home/jwe/src/octave-stable/libinterp/parse-tree/oct-parse.yy:4779
    #237 0x7f9756063b51 in octave::fcn_info::fcn_info_rep::find_user_function() libinterp/corefcn/fcn-info.cc:750
    #238 0x7f975605d34a in octave::fcn_info::fcn_info_rep::load_class_constructor() libinterp/corefcn/fcn-info.cc:123
    #239 0x7f9756060cc5 in octave::fcn_info::fcn_info_rep::xfind(octave_value_list const&) libinterp/corefcn/fcn-info.cc:467
    #240 0x7f975605f8d4 in octave::fcn_info::fcn_info_rep::find(octave_value_list const&) libinterp/corefcn/fcn-info.cc:350
    #241 0x7f97568783ab in octave::fcn_info::find(octave_value_list const&) libinterp/corefcn/fcn-info.h:242
    #242 0x7f9756873348 in octave::symbol_table::fcn_table_find(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) libinterp/corefcn/symtab.cc:393
    #243 0x7f9756873b3c in octave::symbol_table::find_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) libinterp/corefcn/symtab.cc:439
    #244 0x7f97568695e0 in octave::symbol_record::find_function(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave_value_list const&) const libinterp/corefcn/symrec.cc:117
    #245 0x7f9755daf19b in octave::symbol_record::find(unsigned long, octave_value_list const&) const libinterp/corefcn/symrec.h:593
    #246 0x7f9755d97ceb in octave::tree_evaluator::visit_identifier(octave::tree_identifier&) libinterp/parse-tree/pt-eval.cc:1773
    #247 0x7f9755d3c238 in octave::tree_identifier::accept(octave::tree_walker&) libinterp/parse-tree/pt-id.h:134
    #248 0x7f97559effdb in octave::tree_evaluator::evaluate(octave::tree_expression*, int) libinterp/parse-tree/pt-eval.h:312
    #249 0x7f9755d99d39 in octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&) libinterp/parse-tree/pt-eval.cc:2042
    #250 0x7f9755dd475e in octave::tree_index_expression::accept(octave::tree_walker&) libinterp/parse-tree/pt-idx.h:102

SUMMARY: AddressSanitizer: stack-overflow (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x10365c)
==3726==ABORTING


Thanks to everyone for the effort on this product!

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #48182:  testCrashConstants.m added by None (175B - text/x-objcsrc)

 

Carbon-Copy List
  • -email is unavailable- added by jwe (Posted a comment)
  • -email is unavailable- added by ede123
  • -email is unavailable- added by pierre5018 (Posted a comment)
  • -email is unavailable- added by mmuetzel (Posted a comment)
  • -email is unavailable- added by dasergatskov (Posted a comment)
  • -email is unavailable- added by rik5 (Posted a comment)
  • -email is unavailable- added by None (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.

     

    Follow 13 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2024-01-28 rik5 Item GroupSegfault, Bus Error, etc. Unexpected Error or Warning
        SummarySegmentation fault on use of classdef constant property parsing error when classdef constant property expression references another property
    2024-01-23 mmuetzel CategoryInterpreter Classdef
    2021-07-12 jwe Release6.2.0 dev
    2021-07-08 ede123 Carbon-CopyRemoved ede1233 -
    2021-07-08 ede123 Carbon-Copy- Added ede123
    2021-07-08 ede123 Carbon-Copy- Added ede1233
    2021-03-19 mmuetzel StatusNone Confirmed
        Release5.1.0 6.2.0
        Operating SystemGNU/Linux Any
    2021-03-19 mmuetzel Dependencies- bugs #60006 is dependent
    2021-03-19 mmuetzel Dependencies- bugs #60254 is dependent
    2020-01-08 None Attached File- Added testCrashConstants.m, #48182

    Back to the top

    Powered by Savane 3.13-758e.
    Corresponding source code