File tree Expand file tree Collapse file tree 1 file changed +2
-2
lines changed
Expand file tree Collapse file tree 1 file changed +2
-2
lines changed Original file line number Diff line number Diff line change @@ -148,12 +148,12 @@ std::unique_ptr<NodeResult> ArithmeticOperationNode::evaluate(PSC::Context &ctx)
148148
149149 const PSC::EnumTypeDefinition &definition = enumVal.getDefinition (ctx);
150150 std::size_t enumSize = definition.values .size ();
151- res %= enumSize;
151+ res %= static_cast <std:: make_signed_t < size_t >>( enumSize); // enumSize needs to be cast to signed type otherwise res will be cast to unsigned
152152 if (res < 0 ) res += enumSize;
153153
154154 std::unique_ptr<PSC::Enum> resEnum = std::make_unique<PSC::Enum>(definition.name );
155155 resEnum->idx = res;
156- return std::make_unique<NodeResult>(std::move (resEnum), PSC::DataType:: ENUM);
156+ return std::make_unique<NodeResult>(std::move (resEnum), PSC::DataType (PSC::DataType:: ENUM, &definition. name ) );
157157 }
158158
159159 if ((leftRes->type != PSC::DataType::INTEGER && leftRes->type != PSC::DataType::REAL)
You can’t perform that action at this time.
0 commit comments