Closed
Description
The current implementation lies about the type of struct field as the type of its underlying scalar field. Because of which, in some cases it could lead to an IR where either RHS or LHS of copyblk asg is a scalar type var. These cases has following limitations
- LHS is a scalar local var. This will be marked as DoNotEnregister by fgMorphCopyblk
- RHS is a scalar local var. AssertionProp will not perform const prop on RHS such an asg since copyblk could be incorrectly considered as initblk by morph logic.
These two limitations could be avoided by implementing recursive struct promotion.
category:cq
theme:structs
skill-level:expert
cost:large
impact:medium