| // Copyright lowRISC contributors. | 
 | // Licensed under the Apache License, Version 2.0, see LICENSE for details. | 
 | // SPDX-License-Identifier: Apache-2.0 | 
 |  | 
 | #ifndef OPENTITAN_SW_DEVICE_LIB_DIF_DIF_WARN_UNUSED_RESULT_H_ | 
 | #define OPENTITAN_SW_DEVICE_LIB_DIF_DIF_WARN_UNUSED_RESULT_H_ | 
 |  | 
 | /** | 
 |  * @file | 
 |  * @brief Unused Result Warning Macro for DIFs. | 
 |  */ | 
 |  | 
 | #ifdef __cplusplus | 
 | extern "C" { | 
 | #endif  // __cplusplus | 
 |  | 
 | /** | 
 |  * Attribute for functions which return errors that must be acknowledged. | 
 |  * | 
 |  * This attribute must be used to mark all DIFs which return an error value of | 
 |  * some kind, to ensure that callers do not accidentally drop the error on the | 
 |  * ground. | 
 |  * | 
 |  * Normally, the standard way to drop such a value on the ground explicitly is | 
 |  * with the syntax `(void)expr;`, in analogy with the behavior of C++'s | 
 |  * `[[nodiscard]]` attribute. | 
 |  * However, GCC does not implement this, so the idiom `if (expr) {}` should be | 
 |  * used instead, for the time being. | 
 |  * See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25509. | 
 |  */ | 
 | #define DIF_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) | 
 |  | 
 | #ifdef __cplusplus | 
 | }  // extern "C" | 
 | #endif  // __cplusplus | 
 |  | 
 | #endif  // OPENTITAN_SW_DEVICE_LIB_DIF_DIF_WARN_UNUSED_RESULT_H_ |