Re: [PATCH] i386: Update naked-1.c for PIC

2017-07-31 Thread Uros Bizjak
On Tue, Aug 1, 2017 at 12:48 AM, H.J. Lu  wrote:
> For ia32 targets, -fPIC may generate
>
> call __x86.get_pc_thunk.ax
> ...
> __x86.get_pc_thunk.ax:
> movl(%esp), %eax
> ret
>
> We should check "ret" only for non-PIC or non-ia32 targets.

I have added -fno-pic to dg-options.

Tested on x86_64-linux-gnu {,-m32} and committed.

Uros.

Index: gcc.target/i386/naked-1.c
===
--- gcc.target/i386/naked-1.c   (revision 250745)
+++ gcc.target/i386/naked-1.c   (working copy)
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O0" } */
+/* { dg-options "-O0 -fno-pic" } */

 /* Verify that __attribute__((naked)) produces a naked function
that does not use ret to return but traps at the end.  */


[PATCH] i386: Update naked-1.c for PIC

2017-07-31 Thread H.J. Lu
For ia32 targets, -fPIC may generate

call __x86.get_pc_thunk.ax
...
__x86.get_pc_thunk.ax:
movl(%esp), %eax
ret

We should check "ret" only for non-PIC or non-ia32 targets.

OK for trunk?

H.J.
---
* gcc.target/i386/naked-1.c: Check "ret" only for non-PIC or
non-ia32 targets.
---
 gcc/testsuite/gcc.target/i386/naked-1.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/testsuite/gcc.target/i386/naked-1.c 
b/gcc/testsuite/gcc.target/i386/naked-1.c
index 440dbe9ee7a..dda354371ba 100644
--- a/gcc/testsuite/gcc.target/i386/naked-1.c
+++ b/gcc/testsuite/gcc.target/i386/naked-1.c
@@ -11,4 +11,4 @@ foo (void)
 }
 /* { dg-final { scan-assembler "# naked" } } */
 /* { dg-final { scan-assembler "ud2" } } */
-/* { dg-final { scan-assembler-not "ret" } } */
+/* { dg-final { scan-assembler-not "ret" { target { nonpic || { ! ia32 } } } } 
} */
-- 
2.13.3