
Public Member Functions | |
| DoCopyStructures (TypeMap *typeMap, bool errorOnMethodCall, bool copyHeaders=false) | |
| const IR::Node * | postorder (IR::AssignmentStatement *statement) override |
Convert assignments between structures to assignments between fields
Examples: struct src { bit<32> hdr; } struct dst { bit<32> hdr; } action test() { dst = src; }
is replaced by
action test() { dst.hdr = src.hdr; }
Further, struct initialization is converted to assignment on struct fields
Note, header assignments are not converted in this pass.