On Tue, Sep 06, 2016 at 12:07:47PM +0200, Christophe Lyon wrote: > On 5 September 2016 at 19:20, Jakub Jelinek <ja...@redhat.com> wrote: > > Hi! > > > > While it would be perhaps nice to pass explicit location_t in the target > > option handling code, there are hundreds of error/warning/sorry calls > > in lots of backends, and lots of those routines are used not just > > for the process_options time (i.e. command line options), but also for > > pragma GCC target and target option handling, so at least for the time being > > I think it is easier to just use UNKNOWN_LOCATION for the command line > > option diagnostics. > > > > Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? > > > > 2016-09-05 Jakub Jelinek <ja...@redhat.com> > > > > PR middle-end/77475 > > * toplev.c (process_options): Temporarily set input_location > > to UNKNOWN_LOCATION around targetm.target_option.override () call. > > > > This patch caused regressions on aarch64. The following tests now fail: > gcc.target/aarch64/arch-diagnostics-1.c (test for errors, line 1) > gcc.target/aarch64/arch-diagnostics-1.c (test for excess errors) > gcc.target/aarch64/arch-diagnostics-2.c (test for errors, line 1) > gcc.target/aarch64/arch-diagnostics-2.c (test for excess errors) > gcc.target/aarch64/cpu-diagnostics-1.c (test for errors, line 1) > gcc.target/aarch64/cpu-diagnostics-1.c (test for excess errors) > gcc.target/aarch64/cpu-diagnostics-2.c (test for errors, line 1) > gcc.target/aarch64/cpu-diagnostics-2.c (test for excess errors) > gcc.target/aarch64/cpu-diagnostics-3.c (test for errors, line 1) > gcc.target/aarch64/cpu-diagnostics-3.c (test for excess errors) > gcc.target/aarch64/cpu-diagnostics-4.c (test for errors, line 1) > gcc.target/aarch64/cpu-diagnostics-4.c (test for excess errors)
Those tests need adjustments, not to expect such errors on line 1, but on line 0. I think following untested patch should fix that: --- gcc/testsuite/gcc.target/aarch64/arch-diagnostics-1.c.jj 2012-10-23 19:54:58.000000000 +0200 +++ gcc/testsuite/gcc.target/aarch64/arch-diagnostics-1.c 2016-09-06 12:10:32.241560531 +0200 @@ -1,4 +1,4 @@ -/* { dg-error "unknown" "" {target "aarch64*-*-*" } } */ +/* { dg-error "unknown" "" {target "aarch64*-*-*" } 0 } */ /* { dg-options "-O2 -march=dummy" } */ void f () --- gcc/testsuite/gcc.target/aarch64/cpu-diagnostics-2.c.jj 2016-05-18 10:59:49.000000000 +0200 +++ gcc/testsuite/gcc.target/aarch64/cpu-diagnostics-2.c 2016-09-06 12:11:08.170110003 +0200 @@ -1,4 +1,4 @@ -/* { dg-error "missing" "" {target "aarch64*-*-*" } } */ +/* { dg-error "missing" "" {target "aarch64*-*-*" } 0 } */ /* { dg-skip-if "do not override -mcpu" { *-*-* } { "-mcpu=*" } { "" } } */ /* { dg-options "-O2 -mcpu=cortex-a53+no" } */ --- gcc/testsuite/gcc.target/aarch64/cpu-diagnostics-1.c.jj 2016-05-18 10:59:49.000000000 +0200 +++ gcc/testsuite/gcc.target/aarch64/cpu-diagnostics-1.c 2016-09-06 12:11:01.698191158 +0200 @@ -1,4 +1,4 @@ -/* { dg-error "unknown" "" {target "aarch64*-*-*" } } */ +/* { dg-error "unknown" "" {target "aarch64*-*-*" } 0 } */ /* { dg-skip-if "do not override -mcpu" { *-*-* } { "-mcpu=*" } { "" } } */ /* { dg-options "-O2 -mcpu=dummy" } */ --- gcc/testsuite/gcc.target/aarch64/arch-diagnostics-2.c.jj 2012-10-23 19:54:58.000000000 +0200 +++ gcc/testsuite/gcc.target/aarch64/arch-diagnostics-2.c 2016-09-06 12:10:39.737466536 +0200 @@ -1,4 +1,4 @@ -/* { dg-error "missing" "" {target "aarch64*-*-*" } } */ +/* { dg-error "missing" "" {target "aarch64*-*-*" } 0 } */ /* { dg-options "-O2 -march=+dummy" } */ void f () --- gcc/testsuite/gcc.target/aarch64/cpu-diagnostics-3.c.jj 2016-05-18 10:59:49.000000000 +0200 +++ gcc/testsuite/gcc.target/aarch64/cpu-diagnostics-3.c 2016-09-06 12:11:13.628041564 +0200 @@ -1,4 +1,4 @@ -/* { dg-error "invalid feature" "" {target "aarch64*-*-*" } } */ +/* { dg-error "invalid feature" "" {target "aarch64*-*-*" } 0 } */ /* { dg-skip-if "do not override -mcpu" { *-*-* } { "-mcpu=*" } { "" } } */ /* { dg-options "-O2 -mcpu=cortex-a53+dummy" } */ --- gcc/testsuite/gcc.target/aarch64/cpu-diagnostics-4.c.jj 2016-05-18 10:59:49.000000000 +0200 +++ gcc/testsuite/gcc.target/aarch64/cpu-diagnostics-4.c 2016-09-06 12:11:18.448981111 +0200 @@ -1,4 +1,4 @@ -/* { dg-error "missing" "" {target "aarch64*-*-*" } } */ +/* { dg-error "missing" "" {target "aarch64*-*-*" } 0 } */ /* { dg-skip-if "do not override -mcpu" { *-*-* } { "-mcpu=*" } { "" } } */ /* { dg-options "-O2 -mcpu=+dummy" } */ Jakub