Use explicit CopyMem to resolve intrinsic memcpy errors on some
compilers

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Samer El-Haj-Mahmoud <[email protected]>
---
 .../Universal/RegularExpressionDxe/Oniguruma/regcomp.c     | 14 ++++++++------
 .../Universal/RegularExpressionDxe/Oniguruma/regparse.c    |  2 +-
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regcomp.c 
b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regcomp.c
index 25b768b..a5d0cd4 100644
--- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regcomp.c
+++ b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regcomp.c
@@ -70,7 +70,9 @@ static void
 swap_node(Node* a, Node* b)
 {
   Node c;
-  c = *a; *a = *b; *b = c;
+  CopyMem (&c, a, sizeof (Node));
+  CopyMem (a, b, sizeof (Node));
+  CopyMem (b, &c, sizeof (Node));
 
   if (NTYPE(a) == NT_STR) {
     StrNode* sn = NSTR(a);
@@ -4103,7 +4105,7 @@ alt_merge_mml(MinMaxLen* to, MinMaxLen* from)
 static void
 copy_opt_env(OptEnv* to, OptEnv* from)
 {
-  *to = *from;
+  CopyMem (to, from, sizeof (OptEnv));
 }
 
 static void
@@ -4116,7 +4118,7 @@ clear_opt_anc_info(OptAncInfo* anc)
 static void
 copy_opt_anc_info(OptAncInfo* to, OptAncInfo* from)
 {
-  *to = *from;
+  CopyMem (to, from, sizeof (OptAncInfo));
 }
 
 static void
@@ -4200,7 +4202,7 @@ clear_opt_exact_info(OptExactInfo* ex)
 static void
 copy_opt_exact_info(OptExactInfo* to, OptExactInfo* from)
 {
-  *to = *from;
+  CopyMem (to, from, sizeof (OptExactInfo));
 }
 
 static void
@@ -4348,7 +4350,7 @@ clear_opt_map_info(OptMapInfo* map)
 static void
 copy_opt_map_info(OptMapInfo* to, OptMapInfo* from)
 {
-  *to = *from;
+  CopyMem (to, from, sizeof (OptMapInfo));
 }
 
 static void
@@ -4463,7 +4465,7 @@ clear_node_opt_info(NodeOptInfo* opt)
 static void
 copy_node_opt_info(NodeOptInfo* to, NodeOptInfo* from)
 {
-  *to = *from;
+  CopyMem (to, from, sizeof (NodeOptInfo));
 }
 
 static void
diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regparse.c 
b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regparse.c
index 4be2f22..05cf2cc 100644
--- a/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regparse.c
+++ b/MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/regparse.c
@@ -2211,7 +2211,7 @@ onig_reduce_nested_quantifier(Node* pnode, Node* cnode)
 
   switch(ReduceTypeTable[cnum][pnum]) {
   case RQ_DEL:
-    *pnode = *cnode;
+    CopyMem (pnode, cnode, sizeof (Node));
     break;
   case RQ_A:
     p->target = c->target;
-- 
2.6.3.windows.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to