PR# 19891 Separate object looses void-safety
Problem Report Summary
Submitter: rosivaldo
Category: Compiler
Priority: Low
Date: 2023/06/13
Class: Bug
Severity: Serious
Number: 19891
Release: 22.12 (22.12.10.6463 - win64)
Confidential: No
Status: Open
Responsible:
Environment: win64
Synopsis: Separate object looses void-safety
Description
Void-safety is ignored when a Void would-be separate object gets controlled.
To Reproduce
- Open and compile the st_implementation_bugs target of (attached) .\main\st_implementation\st_implementation.ecf project.
- Three compilation error will be issued, as below.
VUTA(2) Target of the Object_call might be void. SEPARATE_VOID_UNSAFETY.reproduce_separate_void_unsafety (bugs) 19, 13
Error code: VUTA(2)
(...)
Line: 19
do
-> s1 := c1.out
s2 := c2.out
VUTA(3) Separate target of the Object_call is not controlled. SEPARATE_VOID_UNSAFETY.reproduce_separate_void_unsafety (bugs) 20, 10
Error code: VUTA(3)
(...)
Line: 20
s1 := c1.out
-> s2 := c2.out
separate c2 as sep_c2 do
VUTA(2) Target of the Object_call might be void. SEPARATE_VOID_UNSAFETY.reproduce_separate_void_unsafety (bugs) 20, 13
Error code: VUTA(2)
(...)
Line: 20
s1 := c1.out
-> s2 := c2.out
separate c2 as sep_c2 do
- Comment out lines 19 and 20 of SEPARATE_VOID_UNSAFETY class.
- Compile the project again (F7).
- Run the project (F5).
- A VOID_TARGET or OPERATING_SYSTEM_SIGNAL_FAILURE exception is raised, as below.
VOID_TARGET raised (VOID_TARGET)
******************************** Thread exception *****************************
In thread Root thread 0x0 (thread id)
*******************************************************************************
-------------------------------------------------------------------------------
Class / Object Routine Nature of exception Effect
-------------------------------------------------------------------------------
SEPARATE_VOID_UNSAFETY
reproduce_separate_void_unsafety @2
:
<00000000049C0628> Feature call on void target. Fail
Segmentation violation: OPERATING_SYSTEM_SIGNAL_FAILURE raised (OPERATING_SYSTEM_SIGNAL_FAILURE)
******************************** Thread exception *****************************
In thread Root thread 0x0 (thread id)
*******************************************************************************
-------------------------------------------------------------------------------
Class / Object Routine Nature of exception Effect
-------------------------------------------------------------------------------
SEPARATE_VOID_UNSAFETY
reproduce_separate_void_unsafety @2
Segmentation violation: