Skip to content

AddAbstractDomain

Jorge Navas edited this page Nov 3, 2022 · 5 revisions
  1. Modify https://github.com/seahorn/clam/blob/master/include/clam/CrabDomain.hh

    Add line:

     constexpr Type MY_NEW_DOM(N, "my-new-domain", "text description of the domain");
    

    where N is the next available number.

    Modify line:

    Add MY_NEW_DOM in List

  2. Add an enum val for the new domain in XClamDomain in https://github.com/seahorn/clam/blob/master/lib/Clam/ClamOptions.def:

     clEnumValN(clam::CrabDomain::MY_NEW_DOMAIN, "my-new-domain", "Here description")
    
  3. In directory directory https://github.com/seahorn/clam/tree/master/lib/Clam/crab/domains:

  • Create new files my_new_domain.hh and my_new_domain.cc

  • Update crab_domains.hh

  • Modify registers_domains.hh. Add line

    extern bool register_my_new_domain();

  1. Add the following line in function registerAllDomains in https://github.com/seahorn/clam/blob/master/lib/Clam/RegisterAnalysis.cc:

     void DomainRegistry::registerAllDomains() {
        register_interval_domain();
        register_ric_domain();
        ...
        register_my_new_domain();
     }
    
  2. Modify cmake https://github.com/seahorn/clam/blob/master/lib/Clam/CMakeLists.txt to include crab/domains/my_new_domain.cc in ClamAnalysis library.

  3. Add the domain in py/clam.py, option --crab-dom

Clone this wiki locally