git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@2463
4a8a32a2-be11-0410-ad9d-
d568d2c75423
+ // this is a good place to check missing return values
+ if (currFunc) {
+ if (!IS_VOID(currFunc->type->next)) {
+ eBBlock *bp;
+ // make sure all predecessors of the last block end in a return
+ for (bp=setFirstItem(ebbs[saveCount-1]->predList);
+ bp;
+ bp=setNextItem(ebbs[saveCount-1]->predList)) {
+ if (bp->ech->op != RETURN) {
+ werror (E_VOID_FUNC, currFunc->name);
+ }
+ }
+ }
+ }
+
/* sort it back by block number */
qsort (ebbs, saveCount, sizeof (eBBlock *), bbNumCompare);
/* sort it back by block number */
qsort (ebbs, saveCount, sizeof (eBBlock *), bbNumCompare);
/* throw away blocks */
setToNull ((void **) &graphEdges);
ebbs = NULL;
/* throw away blocks */
setToNull ((void **) &graphEdges);
ebbs = NULL;