PR# 15874 Finalizing system with attribute with body gives wrong output if inlining enabled
Problem Report Summary
Submitter: prestoat2000
Category: Compiler
Priority: Medium
Date: 2009/05/26
Class: Bug
Severity: Serious
Number: 15874
Release: 6.4.78765
Confidential: No
Status: Closed
Responsible:
Environment: Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.9.0.10) Gecko/2009042715 Firefox/3.0.10
Synopsis: Finalizing system with attribute with body gives wrong output if inlining enabled
Description
Finalizing a system with an attribute in a body that is redefined in a descendant to an attribute with a different body works fine, but if inlining is enabled system execution output is wrong. See also bug #15382 (eweasel test final076) where finalizing a system with an attribute with a body instead crashes the compiler if inlining is enabled. Added eweasel test final080 for this bug.
To Reproduce
Run eweasel test final080.
Problem Report Interactions
Fixed in rev#102911 of EiffelStudio 19.05 intermediate release and 19.02 beta release.
Note that this bug can cause a call on Void target in a void-safe system when inlining is enabled, because the inlining apparently causes a direct access of the attribute, rather than a call to the routine that checks whether it is Void and if so executes the attribute body and returns that value. I have attached classes that demonstrate the call on Void target in a void-safe system finalized with inlining enabled.