Skip to content

Commit

Permalink
Fix for #2503:
Browse files Browse the repository at this point in the history
- Propagate visibility prefix to components of structured components.


git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@18496 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
perost committed Dec 16, 2013
1 parent f67dc27 commit b212460
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions Compiler/FrontEnd/InstUtil.mo
Original file line number Diff line number Diff line change
Expand Up @@ -4285,6 +4285,7 @@ algorithm
SCode.Final fp;
SCode.Ident ident;
list<DAE.Element> el;
SCode.Visibility vis;

// Just return the element if nothing needs to be changed.
case (_,
Expand All @@ -4294,6 +4295,7 @@ algorithm
variability = SCode.VAR(),
direction = Absyn.BIDIR()),
SCode.PREFIXES(
visibility = SCode.PUBLIC(),
finalPrefix = SCode.NOT_FINAL(),
innerOuter = Absyn.NOT_INNER_OUTER()), _)
then inElement;
Expand All @@ -4320,12 +4322,14 @@ algorithm
variability = var,
direction = dir),
SCode.PREFIXES(
visibility = vis,
finalPrefix = fp,
innerOuter = io1), _)
equation
vdir = propagateDirection(vdir, dir, cr, inInfo);
vk = propagateVariability(vk, var);
vprl = propagateParallelism(vprl,sprl,cr,inInfo);
vvis = propagateVisibility(vvis, vis);
var_attrs = propagateFinal(var_attrs, fp);
io2 = propagateInnerOuter(io2, io1);
ct2 = propagateConnectorType(ct2, ct1, cr, inInfo);
Expand Down Expand Up @@ -4433,6 +4437,19 @@ algorithm
end matchcontinue;
end propagateParallelism;

protected function propagateVisibility
"Helper function to propagateAttributes. Propagates the visibility (public or
protected) attribute to variables of a structured component."
input DAE.VarVisibility inVarVisibility;
input SCode.Visibility inVisibility;
output DAE.VarVisibility outVarVisibility;
algorithm
outVarVisibility := match(inVarVisibility, inVisibility)
case (_, SCode.PROTECTED()) then DAE.PROTECTED();
else inVarVisibility;
end match;
end propagateVisibility;

protected function propagateVariability
"Helper function to propagateAttributes. Propagates the variability (parameter
or constant) attribute to variables of a structured component."
Expand Down

0 comments on commit b212460

Please sign in to comment.