Opened 5 years ago

Last modified 5 years ago

#5949 closed defect

SimpleModelicaParser does stack overflow on huge arrays — at Version 2

Reported by: Adrian Pop Owned by: Martin Sjölund
Priority: high Milestone: 1.16.0
Component: Parser Version:
Keywords: Cc:

Description (last modified by Adrian Pop)

Basically it does diffModelicaFileListings on a file with a *HUGE* diagram annotation.

This needs to be rewritten somehow so that it doesn't blow up the stack:

  elseif id==TokenId.LBRACE then
    (tokens, tree) := scan(tokens, tree, TokenId.LBRACE);
    (tokens, tree, b) := LA1(tokens, tree, {TokenId.RBRACE}); // Easier than checking First(expression), etc
    if not b then
      (tokens, tree) := function_arguments(tokens, tree);
    end if;
    (tokens, tree) := scan(tokens, tree, TokenId.RBRACE);

Change History (3)

by Adrian Pop, 5 years ago

Attachment: BadClassDiagram.mo added

comment:1 by Adrian Pop, 5 years ago

Reported by AKIO NATORI via OpenModelica list.

comment:2 by Adrian Pop, 5 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.