28 auto other = std::make_unique<c_qualifierst>();
30 return std::move(other);
35 std::string qualifiers;
41 qualifiers+=
"volatile ";
44 qualifiers+=
"restrict ";
47 qualifiers+=
"_Atomic ";
50 qualifiers+=
"__ptr32 ";
53 qualifiers+=
"__ptr64 ";
56 qualifiers+=
"_Noreturn ";
81 if(src.
get_bool(ID_C_transparent_union))
91 dest.
set(ID_C_constant,
true);
93 dest.
remove(ID_C_constant);
96 dest.
set(ID_C_volatile,
true);
98 dest.
remove(ID_C_volatile);
101 dest.
set(ID_C_restricted,
true);
103 dest.
remove(ID_C_restricted);
106 dest.
set(ID_C_atomic,
true);
111 dest.
set(ID_C_ptr32,
true);
116 dest.
set(ID_C_ptr64,
true);
121 dest.
set(ID_C_transparent_union,
true);
123 dest.
remove(ID_C_transparent_union);
126 dest.
set(ID_C_noreturn,
true);
128 dest.
remove(ID_C_noreturn);
133 dest.
remove(ID_C_constant);
134 dest.
remove(ID_C_volatile);
135 dest.
remove(ID_C_restricted);
138 dest.
remove(ID_C_transparent_union);
139 dest.
remove(ID_C_noreturn);
std::ostream & operator<<(std::ostream &out, const qualifierst &qualifiers)
pretty-print the qualifiers
virtual void clear() override
virtual std::string as_string() const override
virtual void write(typet &src) const override
bool is_transparent_union
virtual std::unique_ptr< qualifierst > clone() const override
virtual void read(const typet &src) override
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)
virtual std::string as_string() const =0
The type of an expression, extends irept.
Defines typet, type_with_subtypet and type_with_subtypest.