X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2FSDCCopt.c;h=25ca302e7583af2e80a0b09587b9cba3fa6578c7;hb=edb7d4ddf17ec135168854dac6c08a8079d033b8;hp=1d390a69cc9cbcb135c44eacbdf7a978442ff255;hpb=0b23c07a94352d4f7677bcd82ed0d83ce56a2e7f;p=fw%2Fsdcc diff --git a/src/SDCCopt.c b/src/SDCCopt.c index 1d390a69..25ca302e 100644 --- a/src/SDCCopt.c +++ b/src/SDCCopt.c @@ -886,24 +886,26 @@ eBBlockFromiCode (iCode * ic) } - // 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); + + if (!options.lessPedantic) { + // this is a good place to check missing return values + if (currFunc) { + if (!IS_VOID(currFunc->etype)) { + 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 (W_VOID_FUNC, currFunc->name); + } } } } } - /* sort it back by block number */ - qsort (ebbs, saveCount, sizeof (eBBlock *), bbNumCompare); - /* if cyclomatic info requested then print it */ if (options.cyclomatic) printCyclomatic (ebbs, saveCount);