This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Defect insice ARM compiler intrinsic memset function

I have found severe defect inside ARM cor Cortex-M3 compiler. It occurs only in release build.

And this is compilation result. Only 8 bytes is cleared, by using STR.

0x00013F06 F88D5008 STRB r5,[sp,#0x08]
23: UINT8 data[9];

64: continue;
65: }
66:
0x00013F42 E00F B 0x00013F64

67: memset(data,0, sizeof(data));
70:
0x00013F44 9504 STR r5,[sp,#0x10]
0x00013F46 9505 STR r5,[sp,#0x14]

71: if(ReadBlockFromSRAM(data, addr, sizeof(data)))
72: {
0x00013F48 2209 MOVS r2,#0x09

=============================================================

When I use:
x2 = sizeof(data);
memset(data,0,x2);

It works fine.

0