https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67958
Bug ID: 67958
Summary: The tests changed by r223498 now FAILs on darwin
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: testsuite
Assignee: unassigned at gcc dot gnu.org
Reporter: dominiq at lps dot ens.fr
CC: andreast at gcc dot gnu.org, iains at gcc dot gnu.org
Target Milestone: ---
Host: x86_64-apple-darwin*
Target: x86_64-apple-darwin*
Build: x86_64-apple-darwin*
The tests changed by r223498 now FAILs on darwin
FAIL: gcc.target/i386/pr32219-1.c scan-assembler movl[
\\t]xxx@GOTOFF\\\\(%[^,]*\\\\), %eax
FAIL: gcc.target/i386/pr32219-2.c scan-assembler movl[
\\t]xxx@GOT\\\\(%[^,]*\\\\), %eax
FAIL: gcc.target/i386/pr32219-3.c scan-assembler movl[
\\t]xxx@GOTOFF\\\\(%[^,]*\\\\), %eax
FAIL: gcc.target/i386/pr32219-4.c scan-assembler movl[
\\t]xxx@GOT\\\\(%[^,]*\\\\), %eax
FAIL: gcc.target/i386/pr32219-5.c scan-assembler movl[
\\t]xxx@GOTOFF\\\\(%[^,]*\\\\), %eax
FAIL: gcc.target/i386/pr32219-6.c scan-assembler movl[
\\t]xxx@GOT\\\\(%[^,]*\\\\), %eax
FAIL: gcc.target/i386/pr32219-7.c scan-assembler movl[
\\t]xxx@GOTOFF\\\\(%[^,]*\\\\), %eax
FAIL: gcc.target/i386/pr32219-8.c scan-assembler movl[
\\t]xxx@GOT\\\\(%[^,]*\\\\), %eax
with -m32 and
FAIL: gcc.target/i386/pr32219-1.c scan-assembler movl[ \\t]xxx\\\\(%rip\\\\),
%eax
FAIL: gcc.target/i386/pr32219-3.c scan-assembler movl[ \\t]xxx\\\\(%rip\\\\),
%eax
FAIL: gcc.target/i386/pr32219-3.c scan-assembler-not xxx@GOTPCREL
FAIL: gcc.target/i386/pr32219-5.c scan-assembler movl[ \\t]xxx\\\\(%rip\\\\),
%eax
FAIL: gcc.target/i386/pr32219-6.c scan-assembler xxx@GOTPCREL
FAIL: gcc.target/i386/pr32219-7.c scan-assembler movl[ \\t]xxx\\\\(%rip\\\\),
%eax
FAIL: gcc.target/i386/pr32219-7.c scan-assembler-not xxx@GOTPCREL
with -m64 and
FAIL: gcc.target/i386/pr39013-1.c scan-assembler bar@PLT
FAIL: gcc.target/i386/pr39013-1.c scan-assembler foo@PLT
FAIL: gcc.target/i386/pr39013-2.c scan-assembler bar@PLT
FAIL: gcc.target/i386/pr39013-2.c scan-assembler foo@PLT
with -m32 or -m64.
With the following patch
--- ../_clean/gcc/testsuite/gcc.target/i386/pr32219-1.c 2015-05-21
23:58:24.000000000 +0200
+++ gcc/testsuite/gcc.target/i386/pr32219-1.c 2015-10-13 19:20:57.000000000
+0200
@@ -12,7 +12,7 @@ foo ()
return xxx;
}
-/* { dg-final { scan-assembler "movl\[ \t\]xxx\\(%rip\\), %eax" { target { !
ia32 } } } } */
+/* { dg-final { scan-assembler "movl\[ \t\]_?xxx\\(%rip\\), %eax" { target { !
ia32 } } } } */
/* { dg-final { scan-assembler-not "xxx@GOTPCREL" { target { ! ia32 } } } } */
-/* { dg-final { scan-assembler "movl\[ \t\]xxx@GOTOFF\\(%\[^,\]*\\), %eax" {
target ia32 } } } */
+/* { dg-final { scan-assembler "movl\[
\t\]_?xxx(@GOTOFF|-L1\\\$pb)\\(%\[^,\]*\\), %eax" { target ia32 } } } */
/* { dg-final { scan-assembler-not "movl\[ \t\]xxx@GOT\\(%\[^,\]*\\), %eax" {
target ia32 } } } */
--- ../_clean/gcc/testsuite/gcc.target/i386/pr32219-2.c 2015-05-21
23:58:24.000000000 +0200
+++ gcc/testsuite/gcc.target/i386/pr32219-2.c 2015-10-13 22:40:20.000000000
+0200
@@ -14,4 +14,4 @@ foo ()
/* { 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 } } } */
+/* { dg-final { scan-assembler "movl\[
\t\](L_)?xxx(@GOT|\\\$non_lazy_ptr-L1\\\$pb)\\(%\[^,\]*\\), %eax" { target ia32
} } } */
--- ../_clean/gcc/testsuite/gcc.target/i386/pr32219-4.c 2015-05-21
23:58:24.000000000 +0200
+++ gcc/testsuite/gcc.target/i386/pr32219-4.c 2015-10-13 22:11:56.000000000
+0200
@@ -15,4 +15,4 @@ foo ()
/* { 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 } } } */
+/* { dg-final { scan-assembler "movl\[
\t\](L_)?xxx(@GOT|\\\$non_lazy_ptr-L1\\\$pb)\\(%\[^,\]*\\)(\\(%\[^,\]*\\))?,
%eax" { target ia32 } } } */
--- ../_clean/gcc/testsuite/gcc.target/i386/pr32219-5.c 2015-05-21
23:58:24.000000000 +0200
+++ gcc/testsuite/gcc.target/i386/pr32219-5.c 2015-10-13 22:14:11.000000000
+0200
@@ -11,7 +11,7 @@ foo ()
return xxx;
}
-/* { dg-final { scan-assembler "movl\[ \t\]xxx\\(%rip\\), %eax" { target { !
ia32 } } } } */
+/* { dg-final { scan-assembler "movl\[ \t\]_?xxx\\(%rip\\), %eax" { target { !
ia32 } } } } */
/* { dg-final { scan-assembler-not "xxx@GOTPCREL" { target { ! ia32 } } } } */
-/* { dg-final { scan-assembler "movl\[ \t\]xxx@GOTOFF\\(%\[^,\]*\\), %eax" {
target ia32 } } } */
+/* { dg-final { scan-assembler "movl\[
\t\]_?xxx(@GOTOFF|-L1\\\$pb)\\(%\[^,\]*\\), %eax" { target ia32 } } } */
/* { dg-final { scan-assembler-not "movl\[ \t\]xxx@GOT\\(%\[^,\]*\\), %eax" {
target ia32 } } } */
--- ../_clean/gcc/testsuite/gcc.target/i386/pr32219-6.c 2015-05-21
23:58:24.000000000 +0200
+++ gcc/testsuite/gcc.target/i386/pr32219-6.c 2015-10-13 22:16:33.000000000
+0200
@@ -14,4 +14,4 @@ foo ()
/* { 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 } } } */
+/* { dg-final { scan-assembler "movl\[
\t\]_?xxx(@GOT|-L1\\\$pb)\\(%\[^,\]*\\), %eax" { target ia32 } } } */
--- ../_clean/gcc/testsuite/gcc.target/i386/pr32219-7.c 2015-05-21
23:58:24.000000000 +0200
+++ gcc/testsuite/gcc.target/i386/pr32219-7.c 2015-10-13 22:18:45.000000000
+0200
@@ -14,5 +14,5 @@ foo ()
/* { dg-final { scan-assembler "movl\[ \t\]xxx\\(%rip\\), %eax" { target { !
ia32 } } } } */
/* { dg-final { scan-assembler-not "xxx@GOTPCREL" { target { ! ia32 } } } } */
-/* { dg-final { scan-assembler "movl\[ \t\]xxx@GOTOFF\\(%\[^,\]*\\), %eax" {
target ia32 } } } */
+/* { dg-final { scan-assembler "movl\[
\t\](L_)?xxx(@GOTOFF|\\\$non_lazy_ptr-L1\\\$pb)\\(%\[^,\]*\\), %eax" { target
ia32 } } } */
/* { dg-final { scan-assembler-not "movl\[ \t\]xxx@GOT\\(%\[^,\]*\\), %eax" {
target ia32 } } } */
--- ../_clean/gcc/testsuite/gcc.target/i386/pr32219-8.c 2015-05-21
23:58:24.000000000 +0200
+++ gcc/testsuite/gcc.target/i386/pr32219-8.c 2015-10-13 22:21:07.000000000
+0200
@@ -15,4 +15,4 @@ foo ()
/* { 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 } } } */
+/* { dg-final { scan-assembler "movl\[
\t\](L_)?xxx(@GOT|\\\$non_lazy_ptr-L1\\\$pb)\\(%\[^,\]*\\), %eax" { target ia32
} } } */
the failures reduce to
FAIL: gcc.target/i386/pr32219-3.c scan-assembler movl[ \t]xxx\\(%rip\\), %eax
FAIL: gcc.target/i386/pr32219-3.c scan-assembler-not xxx@GOTPCREL
FAIL: gcc.target/i386/pr32219-6.c scan-assembler xxx@GOTPCREL
FAIL: gcc.target/i386/pr32219-7.c scan-assembler movl[ \t]xxx\\(%rip\\), %eax
FAIL: gcc.target/i386/pr32219-7.c scan-assembler-not xxx@GOTPCREL
with -m64.
Does the patch move in the right direction, should it provide patterns for the
scan-assembler-not, any advice for the remaining failures?