On 03/06/2015 05:42 AM, H.J. Lu wrote:
> gcc/
> 
>       PR target/65248
>       * output.h (default_binds_local_p_2): New.
>       * varasm.c (default_binds_local_p_2): Renamed to ...
>       (default_binds_local_p_3): This.  Don't return true on protected
>       data symbol if protected data may be external.
>       (default_binds_local_p): Use default_binds_local_p_3.
>       (default_binds_local_p_1): Likewise.
>       (default_binds_local_p_2): New.
>       * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Replace
>       darwin_binds_local_p with default_binds_local_p_2.

Ok.

>       PR target/65248
>       * gcc.target/i386/pr65248-1.c: New file.
>       * gcc.target/i386/pr65248-2.c: Likewise.
>       * gcc.target/i386/pr65248-3.c: Likewise.
>       * gcc.target/i386/pr65248-4.c: Likewise.

These need some tidying, I think.

> +/* { dg-final { scan-assembler-not "movl\[ \t\]xxx\\(%rip\\), %eax" { target 
> { ! ia32 } } } } */
> +/* { dg-final { scan-assembler "xxx@GOTPCREL" { target { ! ia32 } } } } */
> +/* { dg-final { scan-assembler-not "movl\[ \t\]xxx@GOTOFF\\(%\[^,\]*\\), 
> %eax" { target ia32 } } } */
> +/* { dg-final { scan-assembler "movl\[ \t\]xxx@GOT\\(%\[^,\]*\\), %eax" { 
> target ia32 } } } */

The second line is what the rest of these should look like.  You don't need to
scan for movl or %eax.  The relocation used is the only thing that's relevant.
 Thus

        xxx\\(%rip\\)
        xxx@GOTPCREL
        xxx@GOTOFF
        xxx@GOT\\(

respectively.


r~

Reply via email to