PR# 19657 Segmentation violation: (Void, separate...) actual arguments passed via agent.
Problem Report Summary
Submitter: rosivaldo
Category: SCOOP
Priority: Low
Date: 2020/07/28
Class: Bug
Severity: Critical
Number: 19657
Release: EiffelStudio 20.05 (20.05.10.4521 - win64)
Confidential: No
Status: Open
Responsible:
Environment: win64 (mingw)
Synopsis: Segmentation violation: (Void, separate...) actual arguments passed via agent.
Description
Two arguments, of type detachable separate CHARACTER_REF, causes a segmentation violation upon the following scenario: one actual argument is void and the other is actually separate; besides, the call must be done via an agent.
To Reproduce
Freeze the system consisting of the class below with complete void-safety and SCOOP activated. Run the system in workbench mode.
class
APPLICATION
create
make
feature {NONE}
make
local
c: detachable separate CHARACTER_REF
p: PREDICATE [detachable separate CHARACTER_REF, detachable separate CHARACTER_REF]
do
create c
separate c as sep_c do
sep_c.set_item ('a')
end
p := agent p_x1_x2
print (p (Void, c))
end
feature
p_x1_x2 (x1, x2: detachable separate CHARACTER_REF): BOOLEAN
do
--| Segmentation violation upon feature entry
if attached x1 and attached x2 then
Result := x1.natural_32_code \\ 2 /= (x1.natural_32_code + x2.natural_32_code) \\ 2
end
end
end
Problem Report Interactions