Ignore:
Timestamp:
Nov 19, 2015, 4:47:28 PM (4 years ago)
Author:
nmedfort
Message:

More work towards n-ary And/Or/Xor? functions.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/pablo/analysis/pabloverifier.cpp

    r4870 r4876  
    102102                str << "PabloVerifier: def-use error: ";
    103103                PabloPrinter::print(stmt, str);
    104                 str << " is not a user of ";
     104                str << " is not recorded in ";
    105105                PabloPrinter::print(def, str);
     106                str << "'s user list";
    106107                throw std::runtime_error(str.str());
    107108            }
     
    295296            const PabloAST * const op = stmt->getOperand(i);
    296297            if (LLVM_UNLIKELY((isa<Statement>(op) || isa<Var>(op)) && ov.count(op) == 0)) {
    297 
    298298                std::string tmp;
    299299                raw_string_ostream str(tmp);
     
    301301                if (LLVM_UNLIKELY(recursivelyDefined(stmt))) {
    302302                    PabloPrinter::print(stmt, str);
    303                     str << " is recursively defined!";
     303                    str << " is defined by a recursive function!";
    304304                    throw std::runtime_error(str.str());
    305305                }
     
    308308
    309309                str << "function is not topologically ordered! ";
    310                 PabloPrinter::print(stmt->getOperand(i), str);
    311                 str << " was used before definition by ";
     310                PabloAST * op = stmt->getOperand(i);
     311                PabloPrinter::print(op, str);
     312                if (LLVM_UNLIKELY(isa<Statement>(op) && unreachable(stmt, cast<Statement>(op)->getParent()))) {
     313                    str << " was defined in a scope that is unreachable by ";
     314                } else {
     315                    str << " was used before definition by ";
     316                }
    312317                PabloPrinter::print(stmt, str);
    313318                throw std::runtime_error(str.str());
Note: See TracChangeset for help on using the changeset viewer.