A getAdjustedFrameSize function may need to handle larger than 32 bits
integer, so change int to uint64_t.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
LGTM. Did this actually overflow in the wild? A test would be nice.. but also hard to come by given that you'd need to manufacture such a large frame.
Comment Actions
It's a good question. VE has 32 bits offset, so we don't consider such large frames or data structures seriously.
Comment Actions
Rebase and correct capitalization. Also add two regression tests. The
test_frame4294967296 function didn't allocate stack frame correctly before
this modification.
Previously:
lea %s13, -240 and %s13, %s13, (32)0 lea.sl %s11, -1(%s13, %s11)
Now:
lea %s13, -240 and %s13, %s13, (32)0 lea.sl %s11, -2(%s13, %s11)