238 * Takes one or two arguments: the index of the pointer and (optionally) the |
238 * Takes one or two arguments: the index of the pointer and (optionally) the |
239 * index of another argument specifying the maximum number of accessed bytes. |
239 * index of another argument specifying the maximum number of accessed bytes. |
240 */ |
240 */ |
241 #define cx_attr_access_w(...) cx_attr_access(__write_only__, __VA_ARGS__) |
241 #define cx_attr_access_w(...) cx_attr_access(__write_only__, __VA_ARGS__) |
242 |
242 |
243 #if __STDC_VERSION__ >= 202300L |
|
244 |
|
245 /** |
243 /** |
246 * Do not warn about unused variable. |
244 * Do not warn about unused variable. |
247 */ |
245 */ |
248 #define cx_attr_unused [[maybe_unused]] |
246 #define cx_attr_unused __attribute__((__unused__)) |
249 |
247 |
250 /** |
248 /** |
251 * Warn about discarded return value. |
249 * Warn about discarded return value. |
252 */ |
250 */ |
253 #define cx_attr_nodiscard [[nodiscard]] |
|
254 |
|
255 #else // no C23 |
|
256 |
|
257 /** |
|
258 * Do not warn about unused variable. |
|
259 */ |
|
260 #define cx_attr_unused __attribute__((__unused__)) |
|
261 |
|
262 /** |
|
263 * Warn about discarded return value. |
|
264 */ |
|
265 #define cx_attr_nodiscard __attribute__((__warn_unused_result__)) |
251 #define cx_attr_nodiscard __attribute__((__warn_unused_result__)) |
266 |
|
267 #endif // __STDC_VERSION__ |
|
268 |
252 |
269 |
253 |
270 // --------------------------------------------------------------------------- |
254 // --------------------------------------------------------------------------- |
271 // MSVC specifics |
255 // MSVC specifics |
272 // --------------------------------------------------------------------------- |
256 // --------------------------------------------------------------------------- |