On Fri, Nov 2, 2012 at 9:28 AM, Jack Howarth <howa...@bromo.med.uc.edu> wrote: > Currently on targets like x86_64 darwin which don't support -mx32 > -maddress-mode=short, > tests that pass those on dg-options fail with excessive errors at -m64. The > attached patch > resolves this by adding a check_effective_target_maybe_x32 proc to test if > the -mx32 > -maddress-mode=short flags are supported. Tested on x86_64-apple-darwin12. > Okay for > gcc trunk? > Jack > > 2012-11-02 H.J. Lu <hjl.to...@gmail.com> > Jack Howarth <howa...@bromo.med.uc.edu> > > * lib/target-supports.exp (check_effective_target_maybe_x32): New > proc. > * gcc.target/i386/pr54457.c: Use dg-require-effective-target > maybe_x32. > * gcc.target/i386/pr53249.c: Likewise. > > > Index: gcc/testsuite/gcc.target/i386/pr54457.c > =================================================================== > --- gcc/testsuite/gcc.target/i386/pr54457.c (revision 193097) > +++ gcc/testsuite/gcc.target/i386/pr54457.c (working copy) > @@ -1,4 +1,5 @@ > /* { dg-do compile { target { ! { ia32 } } } } */ > +/* { dg-require-effective-target maybe_x32 } */ > /* { dg-options "-O2 -mx32 -maddress-mode=short" } */ > > extern char array[40]; > Index: gcc/testsuite/gcc.target/i386/pr53249.c > =================================================================== > --- gcc/testsuite/gcc.target/i386/pr53249.c (revision 193097) > +++ gcc/testsuite/gcc.target/i386/pr53249.c (working copy) > @@ -1,4 +1,5 @@ > /* { dg-do compile { target { ! { ia32 } } } } */ > +/* { dg-require-effective-target maybe_x32 } */ > /* { dg-options "-O2 -mx32 -ftls-model=initial-exec -maddress-mode=short" } > */ > > struct gomp_task > Index: gcc/testsuite/lib/target-supports.exp > =================================================================== > --- gcc/testsuite/lib/target-supports.exp (revision 193097) > +++ gcc/testsuite/lib/target-supports.exp (working copy) > @@ -4608,6 +4608,14 @@ proc check_effective_target_lto { } { > return [info exists ENABLE_LTO] > } > > +# Return 1 if -mx32 -maddress-mode=short can compile, 0 otherwise. > + > +proc check_effective_target_maybe_x32 { } { > + return [check_no_compiler_messages maybe_x32 object { > + void foo (void) {} > + } "-mx32 -maddress-mode=short"] > +} > + > # Return 1 if this target supports the -fsplit-stack option, 0 > # otherwise. >
Looks good to me. But I can't approve it. -- H.J.