summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--EdkCompatibilityPkg/Foundation/Include/EfiStdArg.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/EdkCompatibilityPkg/Foundation/Include/EfiStdArg.h b/EdkCompatibilityPkg/Foundation/Include/EfiStdArg.h
index 69b4567ae3..5697371b8a 100644
--- a/EdkCompatibilityPkg/Foundation/Include/EfiStdArg.h
+++ b/EdkCompatibilityPkg/Foundation/Include/EfiStdArg.h
@@ -90,6 +90,8 @@ Abstract:
#define VA_END(Marker) ((void)0)
+#define VA_COPY(Dest, Start) __va_copy (Dest, Start)
+
#elif defined(__GNUC__) && !defined(NO_BUILTIN_VA_FUNCS)
//
// Use GCC built-in macros for variable argument lists.
@@ -107,6 +109,8 @@ typedef __builtin_va_list VA_LIST;
#define VA_END(Marker) __builtin_va_end (Marker)
+#define VA_COPY(Dest, Start) __builtin_va_copy (Dest, Start)
+
#else
#ifndef VA_START
@@ -165,6 +169,8 @@ typedef CHAR8 *VA_LIST;
**/
#define VA_END(Marker) (Marker = (VA_LIST) 0)
+#define VA_COPY(dest, src) ((void)((dest) = (src)))
+
#endif
#endif