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:
Problem Report Interactions
From:rosivaldo    Date:2023/06/13    Download   
Attachments for problem report #19891

Attachment: main.zip     Size:8804