Mantis - Squeak
Viewing Issue Advanced Details
7543 VM minor always 06-05-10 18:00 06-05-10 18:42
lewis  
lewis  
normal  
resolved  
fixed  
none    
none  
0007543: Slang inlining bug - type declaration from inlined method incorrectly applied to varible in sender.
SlangInliningBug-dtl illustrates the bug.

To see the problem, load the change set and evaluate 'Interpreter asInlinedCString: #a'

Method #a calls #b: calls #c: and both #b: and #c: are inlined. Prior to the bug fix, the type declaration for a variable in #a is clobbered by a type declaration in #c: that should no longer be present.

The bad generated code is:

EXPORT(sqInt) a(void) {
    TypeDeclarationForParameterFumInMethodC: fum;

    fum = 0;
    return fum;
}

The correct output should be:

EXPORT(sqInt) a(void) {
    OriginalTypeDeclarationForFumInA fum;

    fum = 0;
    return fum;
}

 SlangInliningBug-dtl.8.cs [^] (2,138 bytes) 06-05-10 18:00

Notes
(0013802)
lewis   
06-05-10 18:42   
Fixed in VMMaker-dtl.179