@@ -85,11 +85,12 @@ class c_qualifierst : public qualifierst
8585 is_atomic=false ;
8686 is_ptr32=is_ptr64=false ;
8787 is_transparent_union=false ;
88+ is_nodiscard=false ;
8889 is_noreturn=false ;
8990 }
9091
9192 // standard ones
92- bool is_constant, is_volatile, is_restricted, is_atomic, is_noreturn;
93+ bool is_constant, is_volatile, is_restricted, is_atomic, is_noreturn, is_nodiscard ;
9394
9495 // MS Visual Studio extension
9596 bool is_ptr32, is_ptr64;
@@ -115,6 +116,7 @@ class c_qualifierst : public qualifierst
115116 (!is_atomic || cq->is_atomic ) &&
116117 (!is_ptr32 || cq->is_ptr32 ) &&
117118 (!is_ptr64 || cq->is_ptr64 ) &&
119+ (!is_nodiscard || cq->is_nodiscard ) &&
118120 (!is_noreturn || cq->is_noreturn );
119121
120122 // is_transparent_union isn't checked
@@ -131,6 +133,7 @@ class c_qualifierst : public qualifierst
131133 is_ptr32 == cq->is_ptr32 &&
132134 is_ptr64 == cq->is_ptr64 &&
133135 is_transparent_union == cq->is_transparent_union &&
136+ is_nodiscard == cq->is_nodiscard &&
134137 is_noreturn == cq->is_noreturn ;
135138 }
136139
@@ -144,14 +147,15 @@ class c_qualifierst : public qualifierst
144147 is_ptr32 |= cq->is_ptr32 ;
145148 is_ptr64 |= cq->is_ptr64 ;
146149 is_transparent_union |= cq->is_transparent_union ;
150+ is_nodiscard |= cq->is_nodiscard ;
147151 is_noreturn |= cq->is_noreturn ;
148152 return *this ;
149153 }
150154
151155 virtual std::size_t count () const override
152156 {
153157 return is_constant+is_volatile+is_restricted+is_atomic+
154- is_ptr32+is_ptr64+is_noreturn;
158+ is_ptr32+is_ptr64+is_nodiscard+ is_noreturn;
155159 }
156160};
157161
0 commit comments