Correctness fixes for springboard generators
authorBenjamin Welton <welton@cs.wisc.edu>
Wed, 13 Feb 2019 23:13:39 +0000 (17:13 -0600)
committerXiaozhu Meng <xmeng@cs.wisc.edu>
Fri, 12 Apr 2019 20:22:09 +0000 (15:22 -0500)
commitfb488fd49b82efeb6896c5068668ca8fd3630f3e
treea60ce59f36b03875262331f9242277d0908af52e
parenta1229cb9a98007338dee8f3d39c6e7bcda9b6b70
Correctness fixes for springboard generators

This patch deals with issues where incorrect springboards could be generated.
Specifically addresses three issues:

1. Springboards trampling function data (addresses github issue #551)

2. Required springboards being spilling over block bounds onto
   other required springboards. Prior a if two required springboards were
   located near each other, there was a chance that one of the springboards
   could be partially overwritten resulting in broken behavior.

3. Unsafe reusage of a codegen object where if a trap was needed,
   both a branch and a trap would be written causing bad behavior.
dyninstAPI/src/Relocation/Springboard.C