Skip to content
This repository was archived by the owner on May 18, 2019. It is now read-only.

Commit cf973f1

Browse files
lochelOpenModelica-Hudson
authored andcommitted
Make when condition variables protected and add description string to them
Belonging to [master]: - #2168 - OpenModelica/OpenModelica-testsuite#845
1 parent c4493da commit cf973f1

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

Compiler/BackEnd/FindZeroCrossings.mo

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ import BackendVariable;
4949
import CheckModel;
5050
import ComponentReference;
5151
import DAEDump;
52+
import DAEUtil;
5253
import DoubleEndedList;
5354
import Error;
5455
import Expression;
@@ -57,6 +58,7 @@ import Flags;
5758
import HashTableExpToIndex;
5859
import List;
5960
import MetaModelica.Dangerous;
61+
import SCode;
6062
import SynchronousFeatures;
6163
import Util;
6264
import ZeroCrossings;
@@ -327,7 +329,7 @@ algorithm
327329
ht := BaseHashTable.add((inCondition, inIndex), inHT);
328330
crStr := "$whenCondition" + intString(inIndex);
329331

330-
var := BackendDAE.VAR(DAE.CREF_IDENT(crStr, DAE.T_BOOL_DEFAULT, {}), BackendDAE.DISCRETE(), DAE.BIDIR(), DAE.NON_PARALLEL(), DAE.T_BOOL_DEFAULT, NONE(), NONE(), {}, inSource, NONE(), NONE(), DAE.BCONST(false), NONE(), DAE.NON_CONNECTOR(), DAE.NOT_INNER_OUTER(), true);
332+
var := BackendDAE.VAR(DAE.CREF_IDENT(crStr, DAE.T_BOOL_DEFAULT, {}), BackendDAE.DISCRETE(), DAE.BIDIR(), DAE.NON_PARALLEL(), DAE.T_BOOL_DEFAULT, NONE(), NONE(), {}, inSource, DAEUtil.setProtectedAttr(NONE(), true), NONE(), DAE.BCONST(false), SOME(SCode.COMMENT(NONE(), SOME(ExpressionDump.printExpStr(inCondition)))), DAE.NON_CONNECTOR(), DAE.NOT_INNER_OUTER(), true);
331333
var := BackendVariable.setVarFixed(var, true);
332334
eqn := BackendDAE.EQUATION(DAE.CREF(DAE.CREF_IDENT(crStr, DAE.T_BOOL_DEFAULT, {}), DAE.T_BOOL_DEFAULT), inCondition, inSource, BackendDAE.EQ_ATTR_DEFAULT_DYNAMIC);
333335

@@ -482,7 +484,7 @@ algorithm
482484
case (DAE.ARRAY(array={condition})) equation
483485
crStr = "$whenCondition" + intString(inIndex);
484486

485-
var = BackendDAE.VAR(DAE.CREF_IDENT(crStr, DAE.T_BOOL_DEFAULT, {}), BackendDAE.DISCRETE(), DAE.BIDIR(), DAE.NON_PARALLEL(), DAE.T_BOOL_DEFAULT, NONE(), NONE(), {}, inSource, NONE(), NONE(), DAE.BCONST(false), NONE(), DAE.NON_CONNECTOR(), DAE.NOT_INNER_OUTER(), true);
487+
var = BackendDAE.VAR(DAE.CREF_IDENT(crStr, DAE.T_BOOL_DEFAULT, {}), BackendDAE.DISCRETE(), DAE.BIDIR(), DAE.NON_PARALLEL(), DAE.T_BOOL_DEFAULT, NONE(), NONE(), {}, inSource, DAEUtil.setProtectedAttr(NONE(), true), NONE(), DAE.BCONST(false), SOME(SCode.COMMENT(NONE(), SOME(ExpressionDump.printExpStr(inCondition)))), DAE.NON_CONNECTOR(), DAE.NOT_INNER_OUTER(), true);
486488
var = BackendVariable.setVarFixed(var, true);
487489
stmt = DAE.STMT_ASSIGN(DAE.T_BOOL_DEFAULT, DAE.CREF(DAE.CREF_IDENT(crStr, DAE.T_BOOL_DEFAULT, {}), DAE.T_BOOL_DEFAULT), condition, inSource);
488490

@@ -498,7 +500,7 @@ algorithm
498500
case _ equation
499501
crStr = "$whenCondition" + intString(inIndex);
500502

501-
var = BackendDAE.VAR(DAE.CREF_IDENT(crStr, DAE.T_BOOL_DEFAULT, {}), BackendDAE.DISCRETE(), DAE.BIDIR(), DAE.NON_PARALLEL(), DAE.T_BOOL_DEFAULT, NONE(), NONE(), {}, inSource, NONE(), NONE(), DAE.BCONST(false), NONE(), DAE.NON_CONNECTOR(), DAE.NOT_INNER_OUTER(), true);
503+
var = BackendDAE.VAR(DAE.CREF_IDENT(crStr, DAE.T_BOOL_DEFAULT, {}), BackendDAE.DISCRETE(), DAE.BIDIR(), DAE.NON_PARALLEL(), DAE.T_BOOL_DEFAULT, NONE(), NONE(), {}, inSource, DAEUtil.setProtectedAttr(NONE(), true), NONE(), DAE.BCONST(false), SOME(SCode.COMMENT(NONE(), SOME(ExpressionDump.printExpStr(inCondition)))), DAE.NON_CONNECTOR(), DAE.NOT_INNER_OUTER(), true);
502504
var = BackendVariable.setVarFixed(var, true);
503505
stmt = DAE.STMT_ASSIGN(DAE.T_BOOL_DEFAULT, DAE.CREF(DAE.CREF_IDENT(crStr, DAE.T_BOOL_DEFAULT, {}), DAE.T_BOOL_DEFAULT), inCondition, inSource);
504506

Compiler/FrontEnd/DAE.mo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ public uniontype Element
199199
VarVisibility protection "if protected or public";
200200
Type ty "Full type information required";
201201
Option<Exp> binding "Binding expression e.g. for parameters ; value of start attribute";
202-
InstDims dims "dimensions";
202+
InstDims dims "dimensions";
203203
ConnectorType connectorType "The connector type: flow, stream, no prefix, or not a connector element.";
204204
ElementSource source "the origins of the component/equation/algorithm";
205205
Option<VariableAttributes> variableAttributesOption;

0 commit comments

Comments
 (0)