OOP-Object references passed as actual parameters
Submitted by Elemer Lelik
Link to original bug (#568748)
Description
The code below
/***************************************************************** ** @author STF 572 ** @version 0.0.1 ** @purpose 5.1.2.2, Ensure that Object References shall not be passed as actual parameter or part of an actual parameter. ** @verdict pass reject *****************************************************************/ module NegSem_5010202_ObjectReferences_001 "TTCN-3:2018 Object-Oriented" {
type component GeneralComp {
}
type class MyClass {
var integer x;
public function setX(integer x) {
this.x := x;
}
public function getX() return integer {
return this.x;
}
}
function f_something(MyClass my) runs on GeneralComp {
my.setX(1);
}
testcase TC_NegSem_5010202_ObjectReferences_001() runs on GeneralComp {
var MyClass v_a := MyClass.create(7);
var GeneralComp v_MyGeneralComp := GeneralComp.create;
v_MyGeneralComp.start(f_something(v_a)); //not allowed // C++ error is thrown
if (v_a.getX() == 7) {
setverdict(pass);
} else {
setverdict(fail);
}
}
control {
execute(TC_NegSem_5010202_ObjectReferences_001());
}
}
throws a C++ error:
g++ -c -DLINUX -I/home/james00/titan.core/Install/include -Wall -o NegSem_5010202_ObjectReferences_001.o NegSem_5010202_ObjectReferences_001.cc NegSem_5010202_ObjectReferences_001.cc: In function ‘verdicttype NegSem__5010202__ObjectReferences__001::testcase_TC__NegSem__5010202__ObjectReferences__001(boolean, double)’: NegSem_5010202_ObjectReferences_001.cc:94:1: error: ‘start_f__something’ was not declared in this scope start_f__something(v__MyGeneralComp, v__a); ^~~~~~~~~~~~~~~~~~ NegSem_5010202_ObjectReferences_001.cc:94:1: note: suggested alternative: ‘f__something’ start_f__something(v__MyGeneralComp, v__a); ^~~~~~~~~~~~~~~~~~ f__something Makefile:144: recipe for target 'NegSem_5010202_ObjectReferences_001.o' failed make: *** [NegSem_5010202_ObjectReferences_001.o] Error 1
Version: 7.1.0