A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://clang.llvm.org/doxygen/ProgramStateTrait_8h.html below:

clang: include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h File Reference

#include "llvm/ADT/ImmutableList.h"
#include "llvm/ADT/ImmutableMap.h"
#include "llvm/ADT/ImmutableSet.h"
#include "llvm/Support/Allocator.h"
#include <cstdint>
#include <type_traits>

Go to the source code of this file.

namespace   clang   The JSON file list parser is used to communicate input to InstallAPI.
  namespace   clang::ento   #define  REGISTER_TRAIT_WITH_PROGRAMSTATE(Name, Type)   Declares a program state trait for type Type called Name, and introduce a type named NameTy.
  #define  REGISTER_FACTORY_WITH_PROGRAMSTATE(Type)   Declares a factory for objects of type Type in the program state manager.
  #define  CLANG_ENTO_PROGRAMSTATE_MAP(Key, Value)   llvm::ImmutableMap<Key, Value>   Helper for registering a map trait.
  #define  REGISTER_MAP_WITH_PROGRAMSTATE(Name, Key, Value)   Declares an immutable map of type NameTy, suitable for placement into the ProgramState.
  #define  REGISTER_MAP_FACTORY_WITH_PROGRAMSTATE(Name, Key, Value)   Declares an immutable map type Name and registers the factory for such maps in the program state, but does not add the map itself to the program state.
  #define  REGISTER_SET_WITH_PROGRAMSTATE(Name, Elem)    REGISTER_TRAIT_WITH_PROGRAMSTATE(Name, llvm::ImmutableSet<Elem>)   Declares an immutable set of type NameTy, suitable for placement into the ProgramState.
  #define  REGISTER_SET_FACTORY_WITH_PROGRAMSTATE(Name, Elem)   Declares an immutable set type Name and registers the factory for such sets in the program state, but does not add the set itself to the program state.
  #define  REGISTER_LIST_WITH_PROGRAMSTATE(Name, Elem)    REGISTER_TRAIT_WITH_PROGRAMSTATE(Name, llvm::ImmutableList<Elem>)   Declares an immutable list type NameTy, suitable for placement into the ProgramState.
  #define  REGISTER_LIST_FACTORY_WITH_PROGRAMSTATE(Name, Elem)   Declares an immutable list of type Name and registers the factory for such lists in the program state, but does not add the list itself to the program state.
  ◆ CLANG_ENTO_PROGRAMSTATE_MAP #define CLANG_ENTO_PROGRAMSTATE_MAP (   Key,   Value  )    llvm::ImmutableMap<Key, Value>

Helper for registering a map trait.

If the map type were written directly in the invocation of REGISTER_TRAIT_WITH_PROGRAMSTATE, the comma in the template arguments would be treated as a macro argument separator, which is wrong. This allows the user to specify a map type in a way that the preprocessor can deal with.

Definition at line 73 of file ProgramStateTrait.h.

◆ REGISTER_FACTORY_WITH_PROGRAMSTATE #define REGISTER_FACTORY_WITH_PROGRAMSTATE (   Type ) Value:

namespace ento { \

template <> \

struct

ProgramStateTrait<

Type

> \

: public ProgramStatePartialTrait<Type> { \

static void *GDMIndex() { static int Index; return &Index; } \

}; \

} \

}

The JSON file list parser is used to communicate input to InstallAPI.

Declares a factory for objects of type Type in the program state manager.

The type must provide a ::Factory sub-class. Commonly used for ImmutableMap, ImmutableSet, ImmutableList. The macro should not be used inside namespaces.

Definition at line 55 of file ProgramStateTrait.h.

◆ REGISTER_LIST_FACTORY_WITH_PROGRAMSTATE #define REGISTER_LIST_FACTORY_WITH_PROGRAMSTATE (   Name,   Elem  ) Value:

using Name = llvm::ImmutableList<Elem>; \

REGISTER_FACTORY_WITH_PROGRAMSTATE(Name)

Declares an immutable list of type Name and registers the factory for such lists in the program state, but does not add the list itself to the program state.

Useful for managing lifetime of lists that are used as elements of other program state data structures.

Definition at line 142 of file ProgramStateTrait.h.

◆ REGISTER_LIST_WITH_PROGRAMSTATE

Declares an immutable list type NameTy, suitable for placement into the ProgramState.

This is implementing using llvm::ImmutableList.

State = State->add<Name>(

E

);

bool

Present = State->contains<Name>(

E

);

NameTy List = State->get<Name>();

The macro should not be used inside namespaces, or for traits that must be accessible from more than one translation unit.

Definition at line 135 of file ProgramStateTrait.h.

◆ REGISTER_MAP_FACTORY_WITH_PROGRAMSTATE #define REGISTER_MAP_FACTORY_WITH_PROGRAMSTATE (   Name,   Key,   Value  ) Value:

using Name = llvm::ImmutableMap<Key, Value>; \

REGISTER_FACTORY_WITH_PROGRAMSTATE(Name)

Declares an immutable map type Name and registers the factory for such maps in the program state, but does not add the map itself to the program state.

Useful for managing lifetime of maps that are used as elements of other program state data structures.

Definition at line 95 of file ProgramStateTrait.h.

◆ REGISTER_MAP_WITH_PROGRAMSTATE #define REGISTER_MAP_WITH_PROGRAMSTATE (   Name,   Key,   Value  ) Value:

#define REGISTER_TRAIT_WITH_PROGRAMSTATE(Name, Type)

Declares a program state trait for type Type called Name, and introduce a type named NameTy.

#define CLANG_ENTO_PROGRAMSTATE_MAP(Key, Value)

Helper for registering a map trait.

Declares an immutable map of type NameTy, suitable for placement into the ProgramState.

This is implementing using llvm::ImmutableMap.

State = State->set<Name>(K,

V

);

const Value

*

V

= State->get<Name>(K);

State = State->remove<Name>(K);

NameTy Map = State->get<Name>();

The macro should not be used inside namespaces, or for traits that must be accessible from more than one translation unit.

Definition at line 87 of file ProgramStateTrait.h.

◆ REGISTER_SET_FACTORY_WITH_PROGRAMSTATE #define REGISTER_SET_FACTORY_WITH_PROGRAMSTATE (   Name,   Elem  ) Value:

using Name = llvm::ImmutableSet<Elem>; \

REGISTER_FACTORY_WITH_PROGRAMSTATE(Name)

Declares an immutable set type Name and registers the factory for such sets in the program state, but does not add the set itself to the program state.

Useful for managing lifetime of sets that are used as elements of other program state data structures.

Definition at line 119 of file ProgramStateTrait.h.

◆ REGISTER_SET_WITH_PROGRAMSTATE

Declares an immutable set of type NameTy, suitable for placement into the ProgramState.

This is implementing using llvm::ImmutableSet.

State = State->add<Name>(

E

);

State = State->remove<Name>(

E

);

bool

Present = State->contains<Name>(

E

);

NameTy Set = State->get<Name>();

The macro should not be used inside namespaces, or for traits that must be accessible from more than one translation unit.

Definition at line 112 of file ProgramStateTrait.h.

◆ REGISTER_TRAIT_WITH_PROGRAMSTATE #define REGISTER_TRAIT_WITH_PROGRAMSTATE (   Name,   Type  ) Value:

namespace { \

class Name {}; \

using

Name##Ty =

Type

; \

} \

namespace ento { \

template <> \

struct ProgramStateTrait<Name> : public ProgramStatePartialTrait<Name##Ty> { \

static void *GDMIndex() { \

static int Index; \

return &Index; \

} \

}; \

} \

}

Declares a program state trait for type Type called Name, and introduce a type named NameTy.

The macro should not be used inside namespaces.

Definition at line 34 of file ProgramStateTrait.h.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4