View | Details | Raw Unified | Return to bug 51915
Collapse All | Expand All

(-)gcc/config/arm/arm.c.jj (-1 / +6 lines)
Lines 24664-24670 int Link Here
24664
arm_count_output_move_double_insns (rtx *operands)
24664
arm_count_output_move_double_insns (rtx *operands)
24665
{
24665
{
24666
  int count;
24666
  int count;
24667
  output_move_double (operands, false, &count);
24667
  rtx ops[2];
24668
  /* output_move_double may modify the operands array, so call it
24669
     here on a copy of the array.  */
24670
  ops[0] = operands[0];
24671
  ops[1] = operands[1];
24672
  output_move_double (ops, false, &count);
24668
  return count;
24673
  return count;
24669
}
24674
}
24670
24675
(-)gcc/testsuite/gcc.target/arm/pr51915.c.jj (+13 lines)
Line 0 Link Here
1
/* PR target/51915 */
2
/* { dg-do compile } */
3
/* { dg-options "-march=armv7-a -mfloat-abi=hard -O2" } */
4
5
struct S { int s1; void *s2; };
6
struct T { struct S t1; unsigned long long t2; };
7
struct S *foo (unsigned long long);
8
9
struct S *
10
bar (struct S *x)
11
{
12
  return foo (((struct T *) x)->t2);
13
}

Return to bug 51915