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
From:alexk_es    Date:2019/03/20    Status: Closed    Download   
Fixed in rev#102911 of EiffelStudio 19.05 intermediate release and 19.02 beta release.

From:prestoat2000    Date:2010/06/16    Download   
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.




Attachment: test.e     Size:166
Attachment: test1.e     Size:180
Attachment: test.ecf     Size:1047