How to solve the problem about "Warp Misaligned Address"?

My os is ubuntu 16.04
CUDA is 8.0.44
GPU is gtx1050 ti
When I use cuda-gdb debug programs, which is written with CUDA 8.0.44. the program terminated with the following information:
Thread 1 “FriedLiver” received signal CUDA_EXCEPTION_6, Warp Misaligned Address.
[Switching focus to CUDA kernel 3, grid 162, block (28,2,0), thread (0,0,0), device 0, sm 0, warp 36, lane 0]
0x00007fff9637ae28 in HashEntry::operator= (this=0x7fffedfffa98, e=0x10275a076ec)
at /home/manifold/CUDA_SLAM/BundleFusion_Ubuntu/FriedLiver/Source/DepthSensing/VoxelUtilHashSDF.h:70
70 ((long long*)this)[0] = ((const long long*)&e)[0];

I cann’t understand this message.
the part of program with problem is as following:

struct HashEntry
int3 pos; //hash position (lower left corner of SDFBlock))
int ptr; //pointer into heap to SDFBlock
uint offset; //offset for collisions

__device__ void operator=(const struct HashEntry& e) {
	//((int*)this)[0] = ((const int*)&e)[0];
	//((int*)this)[1] = ((const int*)&e)[1];
	//((int*)this)[2] = ((const int*)&e)[2];
	//((int*)this)[3] = ((const int*)&e)[3];
	//((int*)this)[4] = ((const int*)&e)[4];
	((long long*)this)[0] = ((const long long*)&e)[0];
	((long long*)this)[1] = ((const long long*)&e)[1];
	((int*)this)[4] = ((const int*)&e)[4];


Could you someone give me suggestions and let me modify my program. Thanks a lot!

Your align(16) decorator is in the wrong place.
Study the documentation carefully:

Note that when I compile your code, I get warning messages like this: warning: attribute does not apply to any entity

If you are getting warnings like that, they should not be ignored. They directly point to this issue. The compiler is your friend. Don’t ignore your friends.