<div dir="ltr">I recently updated to Visual Studio 2015 Update 3, which has improved its diagnostics.  As a result of this, LLDB is uncompilable due to a slew of errors of the following nature:<div><br></div><div>D:\src\llvm\tools\lldb\include\lldb/Target/Process.h(3256): error C2719: 'default_stop_addr': formal parameter with requested alignment of 8 won't be aligned<br></div><div><br></div><div>The issue comes down to the fact that lldb::Address contains a std::atomic<uint64_t>, and is being passed by value pervasively throughout the codebase.  There is no way to guarantee that this value is 8 byte aligned.  This has always been a bug, but until now the compiler just hasn't been reporting it.</div><div><br></div><div>Someone correct me if I'm wrong, but I believe this is a problem on any 32-bit platform, and MSVC is just the only one erroring.</div><div><br></div><div>I'm not really sure what to do about this.  Passing std::atomic<uint64>'s by value seems wrong to me.</div><div><br></div><div>Looking at the code, I don't even know why it needs to be atomic.  It's not even being used safely.  We'll have a single function write the value and later read the value, even though it could have been used in the meantime.  Maybe what is really intended is a mutex.  Or maybe it doesn't need to be atomic in the first place.</div><div><br></div><div>Does anyone have a suggestion on what to do about this?  I'm currently blocked on this as I can't compile LLDB.</div></div>