mirror of https://github.com/acidanthera/audk.git
MdePkg/Include: Update Base.h to improve C++ compatibility
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4134 * Map NULL to nullptr or __null when c++ compiler is used. * Map STATIC_ASSERT to static_assert when a c++ compiler is used. * Typecast RETURN_SUCCESS to type RETURN_STATUS to match type used by all return error/warning status codes. C++ has stricter type checking and found this inconsistency. Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Zhiguang Liu <zhiguang.liu@intel.com> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
This commit is contained in:
parent
3182843f3b
commit
933b4c333c
|
@ -309,7 +309,15 @@ struct _LIST_ENTRY {
|
||||||
///
|
///
|
||||||
/// NULL pointer (VOID *)
|
/// NULL pointer (VOID *)
|
||||||
///
|
///
|
||||||
|
#if defined (__cplusplus)
|
||||||
|
#if defined (_MSC_EXTENSIONS)
|
||||||
|
#define NULL nullptr
|
||||||
|
#else
|
||||||
|
#define NULL __null
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
#define NULL ((VOID *) 0)
|
#define NULL ((VOID *) 0)
|
||||||
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// Null character
|
// Null character
|
||||||
|
@ -760,7 +768,7 @@ typedef UINTN *BASE_LIST;
|
||||||
**/
|
**/
|
||||||
#ifdef MDE_CPU_EBC
|
#ifdef MDE_CPU_EBC
|
||||||
#define STATIC_ASSERT(Expression, Message)
|
#define STATIC_ASSERT(Expression, Message)
|
||||||
#elif defined (_MSC_EXTENSIONS)
|
#elif defined (_MSC_EXTENSIONS) || defined (__cplusplus)
|
||||||
#define STATIC_ASSERT static_assert
|
#define STATIC_ASSERT static_assert
|
||||||
#else
|
#else
|
||||||
#define STATIC_ASSERT _Static_assert
|
#define STATIC_ASSERT _Static_assert
|
||||||
|
@ -959,7 +967,7 @@ typedef UINTN RETURN_STATUS;
|
||||||
///
|
///
|
||||||
/// The operation completed successfully.
|
/// The operation completed successfully.
|
||||||
///
|
///
|
||||||
#define RETURN_SUCCESS 0
|
#define RETURN_SUCCESS (RETURN_STATUS)(0)
|
||||||
|
|
||||||
///
|
///
|
||||||
/// The image failed to load.
|
/// The image failed to load.
|
||||||
|
|
Loading…
Reference in New Issue