This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "DotGNU Portable.NET Just In Time compiler (libjit)".

The branch, master has been updated
       via  fa18fbd799c103c456c05c9a66d6996dfc7f701c (commit)
      from  91aedc2f633de28d306b2b3f7cb71e2cd7c4e370 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.savannah.gnu.org/cgit/libjit.git/commit/?id=fa18fbd799c103c456c05c9a66d6996dfc7f701c

commit fa18fbd799c103c456c05c9a66d6996dfc7f701c
Author: Klaus Treichel <[email protected]>
Date:   Sat May 15 19:32:36 2010 +0200

    Fix strict-alias-rules in return struct tests.

diff --git a/ChangeLog b/ChangeLog
index 0293a49..ed0e7cf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -22,7 +22,9 @@
        constant conversions.
 
        * jit/jit-block.c (jit_block_get_next_label): Fix comment for texinfo.
-  
+
+       * tools/gen-apply.c: Fix strict-alias-rules in returning struct tests.
+
 2010-05-08  Klaus Treichel  <[email protected]>
 
        * jit/jit-block.c (_jit_block_clean_cfg): Don't merge an empty block
diff --git a/tools/gen-apply.c b/tools/gen-apply.c
index 2151200..2951802 100644
--- a/tools/gen-apply.c
+++ b/tools/gen-apply.c
@@ -954,6 +954,11 @@ void detect_float_return(void)
        { \
                jit_sbyte value[(n)]; \
        }; \
+       union detect_un_##n \
+       { \
+               struct detect_##n d; \
+               jit_nint value[64 / sizeof(jit_nint)]; \
+       }; \
        struct detect_##n detect_struct_##n(void) \
        { \
                struct detect_##n d; \
@@ -964,23 +969,23 @@ void detect_float_return(void)
        { \
                jit_nint *args; \
                volatile jit_nint stack[1]; \
-               jit_nint buffer[64 / sizeof(jit_nint)]; \
+               union detect_un_##n buffer; \
                void *apply_return; \
                jit_builtin_apply_args(jit_nint *, args); \
                args[0] = (jit_nint)stack; \
-               stack[0] = (jit_nint)buffer; \
+               stack[0] = (jit_nint)&buffer; \
                if(struct_return_special_reg || num_word_regs > 0) \
                { \
-                       args[1] = (jit_nint)buffer; \
+                       args[1] = (jit_nint)&buffer; \
                        if(struct_reg_overlaps_word_reg) \
                        { \
-                               args[2] = (jit_nint)buffer; \
+                               args[2] = (jit_nint)&buffer; \
                        } \
                } \
-               mem_set(buffer, 0, sizeof(buffer)); \
+               mem_set(&buffer, 0, sizeof(buffer)); \
                jit_builtin_apply(detect_struct_##n, args, \
                                                  sizeof(jit_nint), 0, 
apply_return); \
-               if(((struct detect_##n *)buffer)->value[0] == 0x00) \
+               if(buffer.d.value[0] == 0x00) \
                { \
                        struct_return_in_reg[(n) - 1] = 1; \
                } \

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog         |    4 +++-
 tools/gen-apply.c |   17 +++++++++++------
 2 files changed, 14 insertions(+), 7 deletions(-)


hooks/post-receive
-- 
DotGNU Portable.NET Just In Time compiler (libjit)

_______________________________________________
dotgnu-pnet-commits mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/dotgnu-pnet-commits

Reply via email to