ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
c_qualifiers.h
Go to the documentation of this file.
1#ifndef CPROVER_ANSI_C_C_QUALIFIERS_H
2#define CPROVER_ANSI_C_C_QUALIFIERS_H
3
4#include <util/irep/expr.h>
5
7{
8public:
10 {
11 clear();
12 }
13
14 c_qualifierst(const typet &src)
15 {
16 clear();
17 read(src);
18 }
19
20 void clear()
21 {
22 is_constant = false;
23 is_volatile = false;
24 is_restricted = false;
25 }
26
28
29 std::string as_string() const;
30 void read(const typet &src);
31 void write(typet &src) const;
32
33 static void clear(typet &dest);
34
35 bool is_subset_of(const c_qualifierst &q) const
36 {
37 return (!is_constant || q.is_constant) && (!is_volatile || q.is_volatile) &&
39 }
40
41 friend bool operator==(const c_qualifierst &a, const c_qualifierst &b)
42 {
43 return a.is_constant == b.is_constant && a.is_volatile == b.is_volatile &&
45 }
46
47 friend bool operator!=(const c_qualifierst &a, const c_qualifierst &b)
48 {
49 return !(a == b);
50 }
51
52 friend unsigned count(const c_qualifierst &q)
53 {
54 return q.is_constant + q.is_volatile + q.is_restricted;
55 }
56
57 bool is_empty() const
58 {
60 }
61};
62
63#endif
c_qualifierst(const typet &src)
Definition c_qualifiers.h:14
bool is_restricted
Definition c_qualifiers.h:27
void write(typet &src) const
Definition c_qualifiers.cpp:31
void read(const typet &src)
Definition c_qualifiers.cpp:19
friend bool operator==(const c_qualifierst &a, const c_qualifierst &b)
Definition c_qualifiers.h:41
bool is_subset_of(const c_qualifierst &q) const
Definition c_qualifiers.h:35
bool is_empty() const
Definition c_qualifiers.h:57
friend bool operator!=(const c_qualifierst &a, const c_qualifierst &b)
Definition c_qualifiers.h:47
friend unsigned count(const c_qualifierst &q)
Definition c_qualifiers.h:52
c_qualifierst()
Definition c_qualifiers.h:9
std::string as_string() const
Definition c_qualifiers.cpp:3
void clear()
Definition c_qualifiers.h:20
bool is_constant
Definition c_qualifiers.h:27
bool is_volatile
Definition c_qualifiers.h:27
Definition type.h:9