Skip to content

Shifting and rotation operations are missing for string elements

Summary

The generated c++ code can't be compiled

Steps and/or TTCN-3 code to reproduce

module proba {

control{
  var octetstring rawRTCM3msg:='112233445566'O

  var integer i:=oct2int(rawRTCM3msg[3] << 4);
  log(i)
}


} 

What is the current bug behavior?

~/proba$ make
/home/ethgasz/TTCNv3/bin/compiler -L  \
proba.ttcn  - proba.ttcn
Notify: Parsing TTCN-3 module `proba.ttcn'...
Notify: Checking modules...
Notify: Generating code...
Notify: File `proba.cc' was updated.
Notify: 1 file was updated.
touch compile
g++  -c -DLINUX -I/home/ethgasz/TTCNv3/include -Wall   -o proba.o proba.cc
proba.cc: In function ‘void proba::module_control_part()’:
proba.cc:44:68: error: no match for ‘operator<<’ (operand types are ‘const OCTETSTRING_ELEMENT’ and ‘int’)
   44 | INTEGER i(oct2int((const_cast< const OCTETSTRING&>(rawRTCM3msg)[3] << 4)));
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~ ~
      |                                                                  |    |
      |                                                                  |    int
      |                                                                  const OCTETSTRING_ELEMENT
make: *** [Makefile:148: proba.o] Error 1

What is the expected correct behavior?

Working c++ code or error reported by the TITAN

Titan version

Latest

/cc @aknappqwt @mmagyari