コード例 #1
0
void OSRInductionDetector::writeHeaderToResult(OSROpndInfo& result,
        LoopTree* tree,
        OSROpndInfo info1,
        OSROpndInfo info2) {
    if (result.isCounter()) {
        bool opnd1_in_loop = inLoop(tree, info1.getOpnd());
        bool opnd2_in_loop = inLoop(tree, info2.getOpnd());
        if (opnd1_in_loop) {
            result.setHeader(info1.getHeader());
        } else if (opnd2_in_loop) {
            result.setHeader(info2.getHeader());
        }
        result.setHeaderFound();

    } else {
        if (info2.isHeaderFound()) {
            result.setHeader(info2.getHeader());
            result.setHeaderFound();
        } else if (info1.isHeaderFound()) {
            result.setHeader(info1.getHeader());
            result.setHeaderFound();
        }
    }
}
コード例 #2
0
ファイル: qscheck.cpp プロジェクト: aschet/qsaqt5
void QSCheckData::leaveLoop()
{
    Q_ASSERT( inLoop() );
    lablist.erase( --lablist.end() );
}