libitm: Don't execute memtransfer/memset if size isn't larger than zero.
authorTorvald Riegel <triegel@redhat.com>
Mon, 5 Mar 2012 16:34:12 +0000 (16:34 +0000)
committerTorvald Riegel <torvald@gcc.gnu.org>
Mon, 5 Mar 2012 16:34:12 +0000 (16:34 +0000)
libitm/
* dispatch.h (CREATE_DISPATCH_METHODS_MEM): Don't execute
memtransfer/memset if size isn't larger than zero.

From-SVN: r184941

libitm/ChangeLog
libitm/dispatch.h

index 1be02b5..9a3e484 100644 (file)
@@ -1,3 +1,8 @@
+2012-03-05  Torvald Riegel  <triegel@redhat.com>
+
+       * dispatch.h (CREATE_DISPATCH_METHODS_MEM): Don't execute
+       memtransfer/memset if size isn't larger than zero.
+
 2012-03-02  Torvald Riegel  <triegel@redhat.com>
 
        * libitm.texi: Link to specification and add a usage example.
index d059c49..6a9e62e 100644 (file)
 virtual void memtransfer(void *dst, const void* src, size_t size,    \
     bool may_overlap, ls_modifier dst_mod, ls_modifier src_mod)       \
 {                                                                     \
-  memtransfer_static(dst, src, size, may_overlap, dst_mod, src_mod); \
+  if (size > 0)                                                       \
+    memtransfer_static(dst, src, size, may_overlap, dst_mod, src_mod); \
 }                                                                     \
 virtual void memset(void *dst, int c, size_t size, ls_modifier mod)  \
 {                                                                     \
-  memset_static(dst, c, size, mod);                                  \
+  if (size > 0)                                                       \
+    memset_static(dst, c, size, mod);                                 \
 }
 
 #define CREATE_DISPATCH_METHODS_MEM_PV()  \