wrong cast

Hi,

i have a problem with a wrong cast. In the code the variable long t624 is cast to the extern variable long ModuleInputs with an integer [long ModuleInputs = ( (int) long t624)]. The result is that i get a wrong result.

Why is the code different between variable ModuleBlSwVer and ModuleInputs although the graphic is for both the same?

Is this a bug or why does make the SW this wrong cast.

long ModuleInputs    = 0x0000L; 
long ModuleHwVer     = 0x0000L; 
long ModuleBlSwVer   = 0x0000L; 


static void subsystem296()
{
  int _RxByte2_296= 0;
  long t736;
  int _RxByte0_296= 0;
  long t733;
  int _RxIndexValid_296= 0;
  int t629;
  long _Rxlong_296= 0;

  long t624;
.....
  _RxByte2_296 = ( hSubsystem296->inSigS[3]->u.scaledInt.val >> 0);
  t736 = (((long) _RxByte2_296) << 16);
  _RxByte0_296 = ( hSubsystem296->inSigS[2]->u.scaledInt.val >> 0);
   t733 = (((long)((long)( _RxByte0_296 )))|((long) t736));
......
  t629 = ( _RxIndexValid_296 == OUTPUT_INDEX);
  _Rxlong_296 =  t733;
  t624 = (( _RxIndexValid_296 == INPUT_INDEX)? _Rxlong_296 :0L);
  ModuleBlSwVer = (( _RxIndexValid_296 == BL_SW_VER_INDEX)? _Rxlong_296 :0L);

  ModuleInputs = ((int) t624);                                                => wrong cast   !!!!!!!!!!!!!

  ModuleHwVer = (( _RxSDOIndexValid_296 == HW_VER_INDEX)? _Rxlong_296 :0L);
...
}

Please attach the original

Please attach the original .vsm file, or send it to support@vissol.com so we can reproduce this issue.