summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
7fb0107)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4197
4a8a32a2-be11-0410-ad9d-
d568d2c75423
+2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
+
+ * src/SDCCast.c (isLoopCountable): fixed bug #1478316
+
2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
* src/SDCCcse.c (findPointerSet): fixed bug #1493710
2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
* src/SDCCcse.c (findPointerSet): fixed bug #1493710
/* isLoopCountable - return true if the loop count can be determi- */
/* -ned at compile time . */
/*-----------------------------------------------------------------*/
/* isLoopCountable - return true if the loop count can be determi- */
/* -ned at compile time . */
/*-----------------------------------------------------------------*/
isLoopCountable (ast * initExpr, ast * condExpr, ast * loopExpr,
symbol ** sym, ast ** init, ast ** end)
{
isLoopCountable (ast * initExpr, ast * condExpr, ast * loopExpr,
symbol ** sym, ast ** init, ast ** end)
{
+ /* don't reverse loop with volatile counter */
+ if (IS_VOLATILE ((*sym)->type))
+ return FALSE;
+
/* for now the symbol has to be of
integral type */
if (!IS_INTEGRAL ((*sym)->type))
/* for now the symbol has to be of
integral type */
if (!IS_INTEGRAL ((*sym)->type))
/* if the for loop is reversible. If yes will set the value of */
/* the loop control var & init value & termination value */
/*-----------------------------------------------------------------*/
/* if the for loop is reversible. If yes will set the value of */
/* the loop control var & init value & termination value */
/*-----------------------------------------------------------------*/
isLoopReversible (ast * loop, symbol ** loopCntrl,
ast ** init, ast ** end)
{
isLoopReversible (ast * loop, symbol ** loopCntrl,
ast ** init, ast ** end)
{