Hello,

I find all creations of GOTO nodes are in the form of " newNode (GOTO, XXX, NULL); ", that the second parameter is NULL, which is reasonable.

But there is an except locates at line 5809 - 5810 in SDCCast.c (the function createWhile):
whileBody = newNode (NULLOP, whileBody, newNode (GOTO, newAst_VALUE (symbolVal (continueLabel)), createLabel (falseLabel, NULL)));
The second parameter is createLabel (falseLabel, NULL).

But as my opionion, can the following form for the above statement be better ?
whileBody = newNode (NULLOP, whileBody, newNode (GOTO, newAst_VALUE (symbolVal (continueLabel)), NULL));
whileBody = newNode (NULLOP, whileBody, createLabel (falseLabel, NULL));

The problem for the orginal form, is when dumping the AST tree, the right subtree of a GOTO node is omitted, though the final iCode list is right. It might cause confusion while contrasting the dumped AST and the iCode list.

Ben