Problems with Release build after upgrade of VS2019
-
I have no idea if this will affect anything but try the following change:
// change this line:
pchar = &szarr[1];// to
pchar = szarr;and see what happens.
Same, but one element earlier. When looking to the assembly code the loop is not visible. Instead AX and XMM0 are loaded, but both from the wrong index. As the target address is szin[KEYSIZE/2], which is szin[17] the pointer to element 0 gets added by 17. This is also done for the source pointer pchar, which is wrong. 002D10F2 66 8B 45 8E mov ax,word ptr [ebp-72h] 002D10F6 0F 10 85 7E FF FF FF movups xmm0,xmmword ptr [ebp-82h] 72 and 82 are 17 bytes to less. They should be: mov ax,word ptr [ebp-83h] movups xmm0,xmmword ptr [ebp-93h]
-
Yep, done so.
-
Yep, done so.
-
Yep, done so.
-
You may be pleased to know that I have installed VS 2019 and reproduced the problem exactly as you describe it.
So it seems to be a bug in a VS2019 compiler?
-
So it seems to be a bug in a VS2019 compiler?
-
Yep, done so.
Where have you reported this bug?
-
Where have you reported this bug?
Problem after Update 16.5.2 - Developer Community[^] Status is: Under investigation, but it's one problem of > 1k... @Richard MacCutchan: Thanks for testing. So, I'm not alone :-D
-
Hi all, This code in the first loop worked up to now:
unsigned char szin\[200\] = { 0 }; unsigned char szarr\[50\] = { "blah1blah2blah3blah4" }; unsigned char\* pchar; pchar = &szarr\[0\]; for (int i = KEYSIZE / 2; i < KEYSIZE; i++)// Transfer random bytes to second half of in szin\[i\] = \*(pchar++); // This worked up to now. After update nothing is copied pchar = &szarr\[2\]; int jj = 0; for (int i = KEYSIZE / 2; i < KEYSIZE; i++)// Transfer random bytes to second half of in { szin\[i\] = pchar\[jj\]; // This is my current workaround jj++; }
Obviously MS changed something in the compiler, which breaks the release build. Debug still works. Any glue? Regards, Franz
Seems to be fixed with 16.5.4
-
Seems to be fixed with 16.5.4
-
IMHO they found it without my post, as the forum still shows 'under investigation'. However, glad that it's fixed now. ...but some suspiciousness remains.