-
Notifications
You must be signed in to change notification settings - Fork 281
Floating point type propagation failure #5309
Copy link
Copy link
Open
Labels
Component: CoreIssue needs changes to the coreIssue needs changes to the coreCore: MLILIssue involves Medium Level ILIssue involves Medium Level ILEffort: TrivialIssues require < 1 day of workIssues require < 1 day of workImpact: MediumIssue is impactful with a bad, or no, workaroundIssue is impactful with a bad, or no, workaround
Metadata
Metadata
Assignees
Labels
Component: CoreIssue needs changes to the coreIssue needs changes to the coreCore: MLILIssue involves Medium Level ILIssue involves Medium Level ILEffort: TrivialIssues require < 1 day of workIssues require < 1 day of workImpact: MediumIssue is impactful with a bad, or no, workaroundIssue is impactful with a bad, or no, workaround
MLIL fails to properly propagate a floating point type to the constant under some conditions.
In the included binary you can see that on instruction 0x0000298f the constant isn't being represented as a floating point value and the
zmm0variable doesn't have the type ofdoubleIt should be trivially determinable via the following instruction indicating its part of a floating point add

fp_bug.zip
Special Thanks to: Zao Yang and Stefan Nagy for their research in Decompiler Fuzzing for reporting this issue.