Community
Participate
Working Groups
Build Identifier: 3.20.06.81 and 3.21.00.30 The code generated for the C code below: if (module->outidx == SysMin_bufSize) { module->outidx = 0; module->wrapped = TRUE; } module->outbuf[module->outidx++] = ch; actually executes like this: old_outindex = module->outidx; if (old_outidx == SysMin_bufSize) { module->outidx = 0; module->wrapped = TRUE; } module->outidx++; module->outbuf[old_outidx] = ch; This results in a scribbling of the memory address one beyond the end of the SysMin output buffer whenever the output buffer index wraps. Reproducible: Always
Created attachment 186447 [details] ARM M3 code generated for SysMin_putch()
Fixed in xdc-v55
Replicated the problem with 3.20.06.81 and observed in CCS that the characters are written to a location outside of the buffer. Rebuilt with 3.20.07.84 and observed that the characters are now written only within the boundaries of the buffer.
Shipped in XDCtools 3.20.07