29 auto other = std::make_unique<c_qualifierst>();
36 std::string qualifiers;
42 qualifiers+=
"volatile ";
45 qualifiers+=
"restrict ";
48 qualifiers+=
"_Atomic ";
51 qualifiers+=
"__ptr32 ";
54 qualifiers+=
"__ptr64 ";
57 qualifiers +=
"[[nodiscard]] ";
60 qualifiers+=
"_Noreturn ";
85 if(src.
get_bool(ID_C_transparent_union))
98 dest.
set(ID_C_constant,
true);
100 dest.
remove(ID_C_constant);
103 dest.
set(ID_C_volatile,
true);
105 dest.
remove(ID_C_volatile);
108 dest.
set(ID_C_restricted,
true);
110 dest.
remove(ID_C_restricted);
113 dest.
set(ID_C_atomic,
true);
118 dest.
set(ID_C_ptr32,
true);
123 dest.
set(ID_C_ptr64,
true);
128 dest.
set(ID_C_transparent_union,
true);
130 dest.
remove(ID_C_transparent_union);
133 dest.
set(ID_C_nodiscard,
true);
135 dest.
remove(ID_C_nodiscard);
138 dest.
set(ID_C_noreturn,
true);
140 dest.
remove(ID_C_noreturn);
145 dest.
remove(ID_C_constant);
146 dest.
remove(ID_C_volatile);
147 dest.
remove(ID_C_restricted);
150 dest.
remove(ID_C_transparent_union);
151 dest.
remove(ID_C_nodiscard);
152 dest.
remove(ID_C_noreturn);
virtual void write(typet &src) const
virtual void read(const typet &src)
bool is_transparent_union
virtual std::unique_ptr< c_qualifierst > clone() const
virtual std::string as_string() const
c_qualifierst & operator=(const c_qualifierst &other)
bool get_bool(const irep_idt &name) const
void remove(const irep_idt &name)
void set(const irep_idt &name, const irep_idt &value)
The type of an expression, extends irept.
Defines typet, type_with_subtypet and type_with_subtypest.