Changeset 15cb790 for src


Ignore:
Timestamp:
Dec 16, 2024, 12:00:31 PM (2 days ago)
Author:
Andrew Beach <ajbeach@…>
Branches:
master
Children:
4167afa
Parents:
50e04cc
Message:

Added a check in operatorLookup so bad operators give a proper error message instead of segment fault.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/CodeGen/OperatorTable.cpp

    r50e04cc r15cb790  
    7676        }
    7777
    78         if ( inputName.find_first_of( "?^*+-!", 0, 1 ) == std::string::npos ) return nullptr; // prefilter
    79         const OperatorInfo * ret = inputTable.find( inputName )->second;
     78        // Filter out non-operator names:
     79        if ( inputName.find_first_of( "?^*+-!", 0, 1 ) == std::string::npos ) return nullptr;
     80        auto entry = inputTable.find( inputName );
    8081        // This can only happen if an invalid identifier name has been used.
     82        assertf( entry != inputTable.end(), "Not a real operator: %s\n", inputName.c_str() );
     83        const OperatorInfo * ret = entry->second;
    8184        assert( ret );
    8285        return ret;
Note: See TracChangeset for help on using the changeset viewer.