https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117584

--- Comment #11 from Manjunath S Matti <mmatti at linux dot vnet.ibm.com> ---
(In reply to Manjunath S Matti from comment #10)
> 
> But a few failures need looking into
> 
> gcc.dg/torture/bitint-32.c    -m64    -O0 only (passes -O2)
> gcc.dg/torture/bitint-33.c    -m64    -O0 only (passes -O2)
> gcc.dg/torture/bitint-34.c    -m64    -O0 only (passes -O2)
> gcc.dg/torture/bitint-35.c    -m64    -O0 only (passes -O2)
> gcc.dg/torture/bitint-36.c    -m64    -O0 only (passes -O2)
> gcc.dg/torture/bitint-37.c    -m64    -O0 only (passes -O2)
> gcc.dg/torture/bitint-93.c    -m64    both -O0 and -O2        
> gcc.dg/torture/bitint-94.c    -m64    both -O0 and -O2
> 
> I am debugging these issues, which points me to a code block in
> gcc/gcc/gimple-lower-bitint.cc 
> 
> => tree src = build2 (MEM_REF, atype,
>                   build_fold_addr_expr (unshare_expr (obj)), off);
> g = gimple_build_call (fn, 3,
>                      build_fold_addr_expr (unshare_expr (obj)),
>                      src, build_int_cst (size_type_node,
>                                          obj_nelts * m_limb_size));


The following change fixes this issue
--- a/gcc/gimple-lower-bitint.cc
+++ b/gcc/gimple-lower-bitint.cc
@@ -4579,8 +4579,8 @@ bitint_large_huge::finish_arith_overflow (tree var, tree
obj, tree type,
          tree fn = builtin_decl_implicit (BUILT_IN_MEMMOVE);
          tree off = build_int_cst (build_pointer_type (TREE_TYPE (obj)),
                                    (nelts - obj_nelts) * m_limb_size);
-         tree src = build2 (MEM_REF, atype,
-                            build_fold_addr_expr (unshare_expr (obj)), off);
+         tree src = build_fold_addr_expr (build2 (MEM_REF, atype,
+                                 build_fold_addr_expr (unshare_expr (obj)),
off));
          g = gimple_build_call (fn, 3,
                                 build_fold_addr_expr (unshare_expr (obj)),
                                 src, build_int_cst (size_type_node,

Jakub is this the correct fix, can you please confirm.

Reply via email to