<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.arm.com/utility/feedstylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Older C compiler bug</title><link>https://community.arm.com/developer/tools-software/tools/f/keil-forum/19800/older-c-compiler-bug</link><description> I ran across a compiler bug in fairly recent renditions of the C51 compiler. 
 
 
 unsigned char i,j;
 for (i=5; i&amp;lt;11; i--) j += i;
 
 
Rather than walking the indexes 5,4,...0, this code goes 5,4,...0,0xff,0xfe...0xb. That&amp;#39;s because the assembly generated</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator></channel></rss>