diff mbox

[AArch64] Fix PR71112

Message ID CO2PR07MB2694B30CA45CFC8572630A2D83850@CO2PR07MB2694.namprd07.prod.outlook.com
State New
Headers show

Commit Message

Hurugalawadi, Naveen Dec. 7, 2016, 7:25 a.m. UTC
Hi James,

Thanks for the review and suggestions regarding the testcase.

>> Why limit the ABI and endianness here, and if you do plan to do that


Extra options have been dropped and the testcase will check across
all variants and endianness.

Please find attached the modified patch as per the comments and let
me know if its okay?

Thanks,
Naveen

Comments

James Greenhalgh Dec. 7, 2016, 11:07 a.m. UTC | #1
On Wed, Dec 07, 2016 at 07:25:21AM +0000, Hurugalawadi, Naveen wrote:
> Hi James,

> 

> Thanks for the review and suggestions regarding the testcase.

> 

> >> Why limit the ABI and endianness here, and if you do plan to do that

> 

> Extra options have been dropped and the testcase will check across

> all variants and endianness.

> 

> Please find attached the modified patch as per the comments and let

> me know if its okay?


OK with an appropriate ChangeLog entry.

Thanks,
James

> diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c

> index dab46b5..9fce849 100644

> --- a/gcc/config/aarch64/aarch64.c

> +++ b/gcc/config/aarch64/aarch64.c

> @@ -1302,7 +1302,8 @@ aarch64_load_symref_appropriately (rtx dest, rtx imm,

>  	    emit_move_insn (gp_rtx, gen_rtx_HIGH (Pmode, s));

>  

>  	    if (mode != GET_MODE (gp_rtx))

> -	      gp_rtx = simplify_gen_subreg (mode, gp_rtx, GET_MODE (gp_rtx), 0);

> +             gp_rtx = gen_lowpart (mode, gp_rtx);

> +

>  	  }

>  

>  	if (mode == ptr_mode)

> diff --git a/gcc/testsuite/gcc.c-torture/compile/pr71112.c b/gcc/testsuite/gcc.c-torture/compile/pr71112.c

> new file mode 100644

> index 0000000..69e2df6

> --- /dev/null

> +++ b/gcc/testsuite/gcc.c-torture/compile/pr71112.c

> @@ -0,0 +1,10 @@

> +/* PR target/71112.  */

> +/* { dg-additional-options "-fpie" { target pie } } */

> +

> +extern int dbs[100];

> +void f (int *);

> +int nscd_init (void)

> +{

> +  f (dbs);

> +  return 0;

> +}
diff mbox

Patch

diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index dab46b5..9fce849 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -1302,7 +1302,8 @@  aarch64_load_symref_appropriately (rtx dest, rtx imm,
 	    emit_move_insn (gp_rtx, gen_rtx_HIGH (Pmode, s));
 
 	    if (mode != GET_MODE (gp_rtx))
-	      gp_rtx = simplify_gen_subreg (mode, gp_rtx, GET_MODE (gp_rtx), 0);
+             gp_rtx = gen_lowpart (mode, gp_rtx);
+
 	  }
 
 	if (mode == ptr_mode)
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr71112.c b/gcc/testsuite/gcc.c-torture/compile/pr71112.c
new file mode 100644
index 0000000..69e2df6
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr71112.c
@@ -0,0 +1,10 @@ 
+/* PR target/71112.  */
+/* { dg-additional-options "-fpie" { target pie } } */
+
+extern int dbs[100];
+void f (int *);
+int nscd_init (void)
+{
+  f (dbs);
+  return 0;
+}