@@ -134,19 +134,27 @@ class value : public snapshot_interface
134134 bool set (const ink::runtime::value& val);
135135 ink::runtime::value to_interface_value (list_table&) const ;
136136
137+ #ifdef __GNUCC__
138+ # pragma GCC diagnostic push
139+ # pragma GCC diagnostic ignored "-Wtautological-compare"
140+ #endif
137141 // / get value of the type (if possible)
138142 template <value_type ty>
139143 typename ret<ty>::type get () const
140144 {
141145 static_assert (ty != ty, " No getter for this type defined!" );
142146 }
143147
148+ #ifdef __GNUCC__
149+ # pragma GCC diagnostic pop
150+ #endif
151+
144152 // / check if value evaluates to true
145153 bool truthy (const list_table& lists) const ;
146154
147155 // / set value of type (if possible)
148156 template <value_type ty, typename ... Args>
149- constexpr value& set (Args... args )
157+ constexpr value& set (Args...)
150158 {
151159 static_assert (sizeof ...(Args) != sizeof ...(Args), " No setter for this type defined!" );
152160 return *this ;
@@ -192,30 +200,37 @@ class value : public snapshot_interface
192200 }
193201
194202 // / actual storage
203+ struct value_jump {
204+ uint32_t jump;
205+ uint32_t thread_id;
206+ };
207+
208+ struct value_frame {
209+ uint32_t addr;
210+ bool eval; // was eval mode active in frame above
211+ };
212+
213+ struct value_pointer {
214+ hash_t name;
215+ int ci;
216+ };
217+
195218 union {
219+
196220 bool bool_value;
197221 int32_t int32_value;
198222 string_type string_value;
199223 uint32_t uint32_value;
200224 float float_value;
201225
202- struct {
203- uint32_t jump;
204- uint32_t thread_id;
205- } jump;
226+ value_jump jump;
206227
207228 list_table::list list_value;
208229 list_flag list_flag_value;
209230
210- struct {
211- uint32_t addr;
212- bool eval; // was eval mode active in frame above
213- } frame_value;
231+ value_frame frame_value;
214232
215- struct {
216- hash_t name;
217- int ci;
218- } pointer;
233+ value_pointer pointer;
219234 };
220235
221236 static constexpr size_t max_value_size = sizeof_largest_type<
0 commit comments