|  | // 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_ |