titan.core issueshttps://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues2024-01-11T15:16:52Zhttps://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues/677inter-language imports allowed from younger language2024-01-11T15:16:52ZLevente Erősinter-language imports allowed from younger language## Summary
According to Section 8.2.3, point c) of the TTCN-3 standard, "the TTCN-3 language specification in an import statement has to be lower or equal to the TTCN-3
language specification of the importing module".
## Steps and/or T...## Summary
According to Section 8.2.3, point c) of the TTCN-3 standard, "the TTCN-3 language specification in an import statement has to be lower or equal to the TTCN-3
language specification of the importing module".
## Steps and/or TTCN-3 code to reproduce
```
module modules language "TTCN-3:2003"{
type component ct_empty{}
import from F language "TTCN-3:2010" all; //ERROR```
testcase oldimport() runs on ct_empty{
var oldint voi := 1;
setverdict(pass);
}
}
```
also
```
module F language "TTCN-3:2010"{
type integer oldint
}
```
## What is the current bug behavior?
Code compiles and passes.
## What is the expected correct behavior?
Compilation or runtime error due to the import language clause being greater than the language clause of module ```modules```.
## Relevant logs and/or screenshots
## Possible fixes
## Titan version
8.1.0
## Platform details (OS type and version)
Microsoft Windows 10 Enterprise 10.0.19042
/cc @aknappqwt @mmagyariBotond BaranyiBotond Baranyihttps://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues/709Isvalue function causes segmentation fault2023-12-15T12:29:14ZAdam KnappIsvalue function causes segmentation faultSee: https://www.eclipse.org/forums/index.php/t/1114083/See: https://www.eclipse.org/forums/index.php/t/1114083/Adam KnappAdam Knapphttps://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues/708Sizeof function causes fatal error2023-12-05T13:59:24ZAdam KnappSizeof function causes fatal error## Summary
In certain cases, when a function returns template and the sizeof function is used on the returning template causes FATAL_ERROR in the compiler stopping the code generation completely.
## Steps and/or TTCN-3 code to reproduc...## Summary
In certain cases, when a function returns template and the sizeof function is used on the returning template causes FATAL_ERROR in the compiler stopping the code generation completely.
## Steps and/or TTCN-3 code to reproduce
The following code reproduces the issue:
```
// lengthof and sizeof (with functions returning templates)
type record Rec {
integer a optional,
boolean b
}
type record of Rec Rec_of;
function f2() return template Rec_of {
var template Rec_of x;
x[0].a := 0;
x[0].b := ?;
x[1].a := omit;
x[1].b := false;
return x;
}
function f3() return template Rec {
var template Rec t_rec := { ?, true };
return t_rec;
}
template Rec_of RoIret_global := f2();
template Rec rec_global := f3();
testcase tc_predef_sizeof_lengthof_func_rtemp() runs on CT {
template Rec_of RoIret_local := f2();
var template Rec_of RoIret_local_var := f2();
var integer size := lengthof(RoIret_global);
if (size != 2) {
setverdict(fail, "#1: ", size);
}
size := lengthof(RoIret_local);
if (size != 2) {
setverdict(fail, "#2: ", size);
}
size := lengthof(RoIret_local_var);
if (size != 2) {
setverdict(fail, "#3: ", size);
}
size := sizeof(rec_global);
if (size != 2) {
setverdict(fail, "#4: ", size);
}
size := sizeof(RoIret_global);
if (size != 2) {
setverdict(fail, "#5: ", size);
}
size := sizeof(RoIret_local);
if (size != 2) {
setverdict(fail, "#6: ", size);
}
size := sizeof(RoIret_local_var);
if (size != 2) {
setverdict(fail, "#7: ", size);
}
setverdict(pass);
}
```
## What is the current bug behavior?
FATAL_ERROR happens
## What is the expected correct behavior?
Compile without error
## Titan version
Titan 9.0.0
/cc @aknappqwtBotond BaranyiBotond Baranyihttps://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues/256Concatenation for templates2023-11-29T10:56:59ZEclipse WebmasterConcatenation for templates## Submitted by Gyorgy Rethy
Assigned to **Botond Baranyi**
**[Link to original bug (#512878)](https://bugs.eclipse.org/bugs/xmlrpc.cgishow_bug.cgi?id=512878)**
## Description
Concatenation of strings and list/array types is suppo...## Submitted by Gyorgy Rethy
Assigned to **Botond Baranyi**
**[Link to original bug (#512878)](https://bugs.eclipse.org/bugs/xmlrpc.cgishow_bug.cgi?id=512878)**
## Description
Concatenation of strings and list/array types is supported for values, but not for templates.
Supporting this language feature will be useful for the users in general, and it is used in 3GPP test suites in particular.
Version: 6.1.0https://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues/668compound type compatibility contradicts standars2023-11-22T07:18:38ZLevente Erőscompound type compatibility contradicts standars## Summary
According to section 7.1.3 of the TTCN-3 standard, "If there is a compound expression on both sides of the comparison operator, they shall both be value list notation expressions where the elements shall be of the same root t...## Summary
According to section 7.1.3 of the TTCN-3 standard, "If there is a compound expression on both sides of the comparison operator, they shall both be value list notation expressions where the elements shall be of the same root type and they shall be compared like record of values with elements of that root type." This doesn't seem to work in Titan.
## Steps and/or TTCN-3 code to reproduce
```
testcase compoundeq() runs on ct_empty{
if({1,2,3}=={1,2,3){setverdict(pass);}else{setverdict(fail);}
}
```
## What is the current bug behavior?
Error
## What is the expected correct behavior?
Pass
## Relevant logs and/or screenshots
```
../src/datatypes.ttcn:782.21: error: at or before token `)': syntax error
```
## Possible fixes
## Titan version
8.1.0
## Platform details (OS type and version)
Microsoft Windows 10 Enterprise 10.0.19042
/cc @aknappqwt @mmagyariBotond BaranyiBotond Baranyihttps://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues/671isvalue yields error for non-chosen field, while it should return false2023-11-20T07:33:07ZLevente Erősisvalue yields error for non-chosen field, while it should return false## Summary
According to Section 7.1.8.4, EXAMPLE 3, isvalue should yield false if its parameter is a non-chosen (sub)field of a union. Titan however, returns an error because of the referenced field not being the chosen one.
## Steps a...## Summary
According to Section 7.1.8.4, EXAMPLE 3, isvalue should yield false if its parameter is a non-chosen (sub)field of a union. Titan however, returns an error because of the referenced field not being the chosen one.
## Steps and/or TTCN-3 code to reproduce
```
type union MyUnion_isv {
integer ch1,
integer ch2
}
template MyUnion_isv mw_myUnion := { ch1 := ? }
type record MyRecord_isv {
MyUnion_isv u optional
}
template MyRecord_isv mw_myRecord := { u := mw_myUnion }
testcase isvalue_fun() runs on ct_empty{
var boolean v_checkResult := isvalue(mw_myUnion.ch2); // yields false
if(not v_checkResult){setverdict(pass);}else{setverdict(fail);}
v_checkResult := isvalue(mw_myRecord.u.ch2); // yields false
if(not v_checkResult){setverdict(pass);}else{setverdict(fail);}
v_checkResult := isvalue(m_myRecord.u.ch2); // yields false
if(not v_checkResult){setverdict(pass);}else{setverdict(fail);}
}
```
## What is the current bug behavior?
Error.
## What is the expected correct behavior?
Pass.
## Relevant logs and/or screenshots
```
../src/operators.ttcn:353.51-53: error: Reference to inactive field `ch2' in a template of union type `@operators.MyUnion_isv'. The active field is `ch1'.
```
## Possible fixes
## Titan version
8.1.0
## Platform details (OS type and version)
Microsoft Windows 10 Enterprise 10.0.19042
/cc @aknappqwt @mmagyariBotond BaranyiBotond Baranyihttps://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues/670Rotate does not work well on partly initialized record ofs, set ofs, and arrays2023-11-20T07:32:34ZLevente ErősRotate does not work well on partly initialized record ofs, set ofs, and arrays## Summary
According to Section 7.1.7 of the TTCN-3 standard, "When the rotate operator is used for record of-s, set of-s and arrays, its left hand operand shall be at least partially initialized." However, it does not work, only with f...## Summary
According to Section 7.1.7 of the TTCN-3 standard, "When the rotate operator is used for record of-s, set of-s and arrays, its left hand operand shall be at least partially initialized." However, it does not work, only with fully initialized data elements.
## Steps and/or TTCN-3 code to reproduce
```
type record of integer ROI;
type set of integer SOI;
testcase rotatopsub() runs on ct_empty{
var integer uiarray[3], rot_uiarray[3];
uiarray[0] := 1;
uiarray[2] := 3;
var ROI uiro, rot_uiro;
uiro[0] := 1;
uiro[2] := 3;
var SOI uiso, rot_uiso;
uiso[0] := 1;
uiso[2] := 3;
rot_uiarray := uiarray @> 2;
rot_uiro := uiro @> 2;
rot_uiso := uiso @> 2;
/* if(rot_uiarray[0].isbound){setverdict(pass);}else{setverdict(fail);}
if(rot_uiro[0].isbound){setverdict(pass);}else{setverdict(fail);}
if(rot_uiso[0].isbound){setverdict(pass);}else{setverdict(fail);}
*/
}
```
## What is the current bug behavior?
Runtime error, and after uncommenting the last 3 rows, compile error.
## What is the expected correct behavior?
Pass.
## Relevant logs and/or screenshots
```
MTC@HUL21014: Dynamic test case error: Assignment of an unbound integer value.
```
## Possible fixes
## Titan version
8.1.0
## Platform details (OS type and version)
Microsoft Windows 10 Enterprise 10.0.19042
/cc @aknappqwt @mmagyariBotond BaranyiBotond Baranyihttps://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues/669evaluation does not stop where it should2023-11-17T07:10:28ZLevente Erősevaluation does not stop where it should## Summary
According section 7.1.4 of the TTCN-3 standard, "Short circuit evaluation for boolean expressions is used, i.e. the evaluation of operands of logical operators is stopped once the overall result is known: in the case of the a...## Summary
According section 7.1.4 of the TTCN-3 standard, "Short circuit evaluation for boolean expressions is used, i.e. the evaluation of operands of logical operators is stopped once the overall result is known: in the case of the and operator, if the left argument evaluates to false, then the right argument is not evaluated and the whole expression evaluates to false. In the case of the or operator, if the left argument evaluates to true, then the right argument is not evaluated and the whole expression evaluates to true."
## Steps and/or TTCN-3 code to reproduce
```
testcase logicalops() runs on ct_empty{
var integer v:=0;
var integer u:=0;
if(true or (u/v==1)){setverdict(pass);}else{setverdict(fail);}
if(not(false or (u/v==1))){setverdict(pass);}else{setverdict(fail);}
}
```
## What is the current bug behavior?
Pass
## What is the expected correct behavior?
Error, as there is a division by 0 in the 2nd operand -- but this operand shall not be reached during evaluation
## Relevant logs and/or screenshots
## Possible fixes
## Titan version
8.1.0
## Platform details (OS type and version)
Microsoft Windows 10 Enterprise 10.0.19042
/cc @aknappqwt @mmagyariBotond BaranyiBotond Baranyihttps://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues/707Compiler issue: compilation is blocked using 100% of the CPU2023-11-15T15:08:31ZBotond BaranyiCompiler issue: compilation is blocked using 100% of the CPUSee: https://www.eclipse.org/forums/index.php/t/1113807/
/cc @aknappqwt @mmagyariSee: https://www.eclipse.org/forums/index.php/t/1113807/
/cc @aknappqwt @mmagyariBotond BaranyiBotond Baranyihttps://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues/647Record compatibility is too restrictive in Titan2023-11-15T09:58:34ZLevente ErősRecord compatibility is too restrictive in Titan## Summary
Record compatibility requires type name equivalence while standard does not.
## Steps and/or TTCN-3 code to reproduce
```
type record AType {
integer a(0..10) optional,
integer b(0..10) optional,
boolean c
}
type reco...## Summary
Record compatibility requires type name equivalence while standard does not.
## Steps and/or TTCN-3 code to reproduce
```
type record AType {
integer a(0..10) optional,
integer b(0..10) optional,
boolean c
}
type record BType {
integer a optional,
integer b(0..10) optional,
boolean c
}
type record CType {
// type with different field names
integer d optional,
integer e optional,
boolean f
}
type record DType {
// type with field c optional
integer a optional,
integer b optional,
boolean c optional
}
type record EType {
// type with an extra field d
integer a optional,
integer b optional,
boolean c,
float d optional
}
testcase record_comp() runs on ct_empty{
var AType v_myVarA := { -, 1, true};
var BType v_myVarB := { omit, 2, true};
var CType v_myVarC := { 3, omit, true};
v_myVarA := v_myVarB; //error
v_myVarC := v_myVarB; //error
v_myVarC := { d:= 20 };
v_myVarA := v_myVarC; //error
}
```
## What is the current bug behavior?
Errors in the indicated lines.
## What is the expected correct behavior?
These assignments shall succeed: Titan should only take into consideration the (written form of the) value that is assigned, not its type (and not the field names).
## Relevant logs and/or screenshots
```
../src/datatypes.ttcn:553.3-22: In variable assignment:
../src/datatypes.ttcn:553.15-22: error: Type mismatch: a value of type `@datatypes.AType' was expected instead of `@datatypes.BType'
../src/datatypes.ttcn:554.3-22: In variable assignment:
../src/datatypes.ttcn:554.15-22: error: Type mismatch: a value of type `@datatypes.CType' was expected instead of `@datatypes.BType'
../src/datatypes.ttcn:558.3-22: In variable assignment:
../src/datatypes.ttcn:558.15-22: error: Type mismatch: a value of type `@datatypes.AType' was expected instead of `@datatypes.CType'
```
## Possible fixes
## Titan version
8.1.0
## Platform details (OS type and version)
Microsoft Windows 10 Enterprise 10.0.19042
/cc @aknappqwt @mmagyariBotond BaranyiBotond Baranyihttps://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues/672default as module parameter type is allowed in Titan2023-11-15T09:58:29ZLevente Erősdefault as module parameter type is allowed in Titan## Summary
According to Section 8.2.1, Restriction b), module parameters shall not be of default type. However, TITAN allows for this.
## Steps and/or TTCN-3 code to reproduce
```
module modules{
type component ct_empty{}
modulepar ...## Summary
According to Section 8.2.1, Restriction b), module parameters shall not be of default type. However, TITAN allows for this.
## Steps and/or TTCN-3 code to reproduce
```
module modules{
type component ct_empty{}
modulepar default d; //wrong
testcase mp_def_val() runs on ct_empty{
log(d);
}
control{
execute(mp_def_val());
}
}
```
## What is the current bug behavior?
unbound default is logged
## What is the expected correct behavior?
compliation error
## Relevant logs and/or screenshots
```
2022/Dec/06 08:57:24.298261 USER - <unbound>
```
## Possible fixes
## Titan version
8.1.0
## Platform details (OS type and version)
Microsoft Windows 10 Enterprise 10.0.19042
/cc @aknappqwt @mmagyariBotond BaranyiBotond Baranyihttps://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues/678importing imports does not work2023-11-15T09:57:56ZLevente Erősimporting imports does not work## Summary
The mechanism defined in Section 8.2.3.7 of the TTCN-3 standard for importing import statements does not work.
## Steps and/or TTCN-3 code to reproduce
In one module
```
import from chain1 {import all};
testcase importimpo...## Summary
The mechanism defined in Section 8.2.3.7 of the TTCN-3 standard for importing import statements does not work.
## Steps and/or TTCN-3 code to reproduce
In one module
```
import from chain1 {import all};
testcase importimport() runs on ct_empty{
// log(chain2const); //ERROR
// log(chain32const); //ERROR
log(chain33const); //should work
}
```
Furthermore the following modules are needed:
```
module chain1 {
private import from chain2 {import all}; //importing module does not see chain2const
import from chain22 {import all}; //importing module does not see chain32const
public import from chain23 {import all}; //importing module does see chain33const
}
```
```
module chain2 {
import from chain3 all;
}
```
```
module chain22 {
import from chain32 all;
}
```
```
module chain23 {
import from chain33 all;
}
```
```
module chain3 {
const integer chain2const := 1;
}
```
```
module chain32 {
const integer chain32const := 1;
}
```
```
module chain33 {
const integer chain33const := 1;
}
```
## What is the current bug behavior?
chain33const is not seen in the main module.
## What is the expected correct behavior?
chain33const shoulw be seen in the main module while the commented-out two constants should not be seen.
## Relevant logs and/or screenshots
## Possible fixes
## Titan version
8.1.0
## Platform details (OS type and version)
Microsoft Windows 10 Enterprise 10.0.19042
/cc @aknappqwt @mmagyarihttps://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues/681Clashing enumerated identifiers unrecognized by Titan2023-11-15T09:57:46ZLevente ErősClashing enumerated identifiers unrecognized by Titan## Summary
According to sections 6.2.4 and 8.2.3.1 of the TTCN-3 standard, the identifier of a data element with an enumerated type cannot be identical to any element of the domain of the given enumerated type. For example, in the below...## Summary
According to sections 6.2.4 and 8.2.3.1 of the TTCN-3 standard, the identifier of a data element with an enumerated type cannot be identical to any element of the domain of the given enumerated type. For example, in the below example enumY cannot be the identifier of a MyEnumType variable for the following reason: When assigning enumY as the value of another MyEnumType variable enumW, it is ambiguous whether the value of variable enumY (which is enumX) or the emunerated domain value enumY is intended to be assigned to enumW.
## Steps and/or TTCN-3 code to reproduce
```
import from A all;
const MyEnumType2 enumX := enumY;// this is allowed as MyEnumtype2 does not contain enumX
testcase clashing_enum_value() runs on ct_empty{
var MyEnumType enumY := enumX; // this is not allowed as enumerated values restrict global names (see clause 6.2.4)
var MyEnumType enumW := enumY;
var MyEnumType enumZ;
enumZ := enumX; // allowed as MyEnumType does not contain enumZ and also, enumX resolves to domain element of type MyEnumType
//enumZ := modules.enumX; //ERROR but due to this resolving to local constant enumX, which is the expected behavior
setverdict(pass);
}
```
```
module A {
friend module modules;
type enumerated MyEnumType {enumX, enumY}
type enumerated MyEnumType2 {enumY, enumZ}
}
```
## What is the current bug behavior?
pass
## What is the expected correct behavior?
error
## Relevant logs and/or screenshots
## Possible fixes
## Titan version
8.1.0
## Platform details (OS type and version)
Microsoft Windows 10 Enterprise 10.0.19042
/cc @aknappqwt @mmagyarihttps://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues/683Fully unitialized constants are allowed by Titan2023-11-15T09:57:38ZLevente ErősFully unitialized constants are allowed by Titan## Summary
According to Section 10 point d) of the TTCN-3 standard, "The right-hand side of the assignment that initializes a constant shall evaluate to an object that is at least partially initialized."
## Steps and/or TTCN-3 code to ...## Summary
According to Section 10 point d) of the TTCN-3 standard, "The right-hand side of the assignment that initializes a constant shall evaluate to an object that is at least partially initialized."
## Steps and/or TTCN-3 code to reproduce
```
type record myRecord{
integer field1,
charstring field2 optional,
integer field3
}
type record mymultirecord{
myRecord A,
myRecord B
}
type record of integer roi;
testcase partly_init_constants() runs on ct_empty{
const mymultirecord cr := {A := {field1 := 1, field2 := -, field3 := -}, B := -};
const mymultirecord ct := {A := -, B := -}; //should cause an error
const roi iro := {}; //should cause an error
setverdict(pass);
}
```
## What is the current bug behavior?
The test case passes.
## What is the expected correct behavior?
The indicated lines shall cause an error, as those constants are not even partially initialized (they have unbound fields).
## Relevant logs and/or screenshots
## Possible fixes
## Titan version
8.1.0
## Platform details (OS type and version)
Microsoft Windows 10 Enterprise 10.0.19042
/cc @aknappqwt @mmagyariBotond BaranyiBotond Baranyihttps://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues/685Referencing null field does not result in error2023-11-15T09:57:33ZLevente ErősReferencing null field does not result in error## Summary
According to point c) of Section 10 of the TTCN-3 standard, referencing a null field value using dot or index notation shall result in an error. Titan however, does not work accordingly.
## Steps and/or TTCN-3 code to reprod...## Summary
According to point c) of Section 10 of the TTCN-3 standard, referencing a null field value using dot or index notation shall result in an error. Titan however, does not work accordingly.
## Steps and/or TTCN-3 code to reproduce
```
type record defrecord{
default f
}
type record of default defvector;
const defrecord cdr := {null}
const defvector cdv := {null, null}
testcase null_field_constant() runs on ct_empty{
log(cdr.f);
log(cdv[0]);
setverdict(pass);
}
```
## What is the current bug behavior?
Test case passes.
## What is the expected correct behavior?
Test case shall run into an error.
## Relevant logs and/or screenshots
2023/Jan/27 06:39:24.007471 USER - null
2023/Jan/27 06:39:24.007533 USER - null
## Possible fixes
## Titan version
8.1.0
## Platform details (OS type and version)
Microsoft Windows 10 Enterprise 10.0.19042
/cc @aknappqwt @mmagyarihttps://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues/686@lazy and @fuzzy modifiers are not working properly in Titan2023-11-15T09:57:27ZLevente Erős@lazy and @fuzzy modifiers are not working properly in Titan## Summary
According to Section 11.0 of the TTCN-3 standard a lazy variable shall be evaluated when it is first referenced after its value assignment, and shall keep its value until its next value assignment. A fuzzy variable shall be e...## Summary
According to Section 11.0 of the TTCN-3 standard a lazy variable shall be evaluated when it is first referenced after its value assignment, and shall keep its value until its next value assignment. A fuzzy variable shall be evaluated each time it is referenced after its value assignment. Titan however, evaluates lazy and fuzzy variables right at their value assignments.
## Steps and/or TTCN-3 code to reproduce
```
module variables {
type component ct_empty{}
testcase lazyeval() runs on ct_empty{
var integer i := 5;
var @lazy integer l := i;
i := 6;
if(l==6){setverdict(pass);}else{setverdict(fail);}
i := 7;
if(l==6){setverdict(pass);}else{setverdict(fail);}
var float n := 1.0;
var float d := 0.0;
var @lazy float f := n/d;
//shall not cause error as it's not evaluated
}
testcase fuzzyeval() runs on ct_empty{
var integer i := 5;
var @fuzzy integer l := i;
i := 6;
if(l==6){setverdict(pass);}else{setverdict(fail);}
i := 7;
if(l==7){setverdict(pass);}else{setverdict(fail);}
var @fuzzy integer v_fuzzy := 1;
var integer v_var;
var boolean v_condition := true;
if (v_condition) {
var integer v_local := 0;
v_fuzzy := v_local;
v_local := 10;
}
if(v_fuzzy==10){setverdict(pass);}else{setverdict(fail);}
}
control{
execute(lazyeval());
execute(fuzzyeval());
}
}
```
## What is the current bug behavior?
lazy test case causes error (and would not pass without the division by zero). The fuzzy test case fails too.
## What is the expected correct behavior?
Both test cases shall pass
## Relevant logs and/or screenshots
## Possible fixes
## Titan version
8.1.0
## Platform details (OS type and version)
Microsoft Windows 10 Enterprise 10.0.19042
/cc @aknappqwt @mmagyarihttps://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues/687initialization of @lazy and @fuzzy variables can be done by functions having ...2023-11-15T09:57:22ZLevente Erősinitialization of @lazy and @fuzzy variables can be done by functions having inout and out parameters## Summary
The condition in the title is not allowed according to Restriction e) in Section 11.1 of the TTCN-3 standard. Titan however, allows this.
## Steps and/or TTCN-3 code to reproduce
```
function noinoutps() return integer{
v...## Summary
The condition in the title is not allowed according to Restriction e) in Section 11.1 of the TTCN-3 standard. Titan however, allows this.
## Steps and/or TTCN-3 code to reproduce
```
function noinoutps() return integer{
var integer i:=2;
var integer j;
inoutps(i,j);
return 2;
}
function inoutps(inout integer i, out integer j) return integer{
j:=i;
i:=3;
return 3;
}
testcase fuzzy_lazy_ass() runs on ct_empty{
var integer i:=2;
var integer j;
var @lazy integer lv;
@try{
lv := inoutps(i,j);
}@catch(msg){
setverdict(pass);
}
var @lazy integer lv2 := noinoutps();
i:=2;
var @fuzzy integer fv;
@try{
fv := inoutps(i,j);
}@catch(msg){
setverdict(pass);
}
var @fuzzy integer fv2 := noinoutps();
}
```
## What is the current bug behavior?
The testcase has a none verdict.
## What is the expected correct behavior?
The testcase shall have a pass verdict (due to the problematic initializations -- with inoutps running into an error). That is, using ```inoutps(i,j)``` for initializing variables lv and fv shall cause an error.
## Relevant logs and/or screenshots
## Possible fixes
## Titan version
8.1.0
## Platform details (OS type and version)
Microsoft Windows 10 Enterprise 10.0.19042
/cc @aknappqwt @mmagyariBotond BaranyiBotond Baranyihttps://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues/694Template initialization error2023-11-15T09:57:11ZLenard NagyTemplate initialization error## Summary
Original Titan Forum article:
https://www.eclipse.org/forums/index.php/t/1112705/
## Steps and/or TTCN-3 code to reproduce
[proba.ttcn](/uploads/2ce1c6fbbf9f5d026872aab8755fdd7e/proba.ttcn)
## What is the current bug behav...## Summary
Original Titan Forum article:
https://www.eclipse.org/forums/index.php/t/1112705/
## Steps and/or TTCN-3 code to reproduce
[proba.ttcn](/uploads/2ce1c6fbbf9f5d026872aab8755fdd7e/proba.ttcn)
## What is the current bug behavior?
Compiler crash
## Titan version
8.3.0
/cc @aknappqwt @mmagyariBotond BaranyiBotond Baranyihttps://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues/699Uncompilable generated code2023-11-15T09:57:06ZGábor SzalaiUncompilable generated code## Summary
The TITAN generates uncompilable code from the ASN.1 file
## Steps and/or TTCN-3 code to reproduce
Try to compile the generated code
## What is the current bug behavior?
error: redeclaration of ‘size_t pos’
size_t pos = p...## Summary
The TITAN generates uncompilable code from the ASN.1 file
## Steps and/or TTCN-3 code to reproduce
Try to compile the generated code
## What is the current bug behavior?
error: redeclaration of ‘size_t pos’
size_t pos = p_buf.get_pos();
^~~
error: redeclaration of ‘OER_struct tmp_oer’
OER_struct tmp_oer;
^~~~~~~
## Titan version
Latest
/cc @aknappqwt @mmagyariAdam KnappAdam Knapphttps://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues/700Compilation issue in getter/setter functions2023-11-15T09:57:00ZBotond BaranyiCompilation issue in getter/setter functionsThe 'is_in_getter_scope' and 'is_in_setter_scope' functions don't compile on Alpine Linux.
See https://www.eclipse.org/forums/index.php/t/1113087/The 'is_in_getter_scope' and 'is_in_setter_scope' functions don't compile on Alpine Linux.
See https://www.eclipse.org/forums/index.php/t/1113087/Botond BaranyiBotond Baranyi