Doing a FQuat*FQuat when one of them is a parameter-by-value in non-debug builds causes access violation

I have bumped into this exact FQuat alignment issue through versions 4.16-4.20 on VS 2015 and 2017. I can mostly work around the issue with the above suggestions, but I’m wondering if this ever crops up for the Epic team and if there is a “better” fix?

Where it seems to happen more frequently than just “straight” C++ code is:

  • When a BP construction script calls C++ code (not 100%, but frequent)
  • When a cook runs, outside of BP construction scripts

These are both crash situations where it can be harder to track down an FQuat misalignment - and more importantly these crashes can often elude localized testing prior to checkins.

thanks,
jeff