On Wed, Dec 7, 2011 at 11:32 PM, Teresa Johnson <tejohn...@google.com> wrote:
>>> An issue turned up in our internal 4.6 based testing that has been >>> fixed on trunk. This patch backports the fix to 4.6. I also have a >>> small test case that I will add to both 4.6 and 4.7. >>> >>> Bootstrapped and checked with x86_64-unknown-linux-gnu. >>> >>> 2011-12-07 Teresa Johnson <tejohn...@google.com> >>> >>> Backport from mainline: >>> >>> 2011-08-05 Uros Bizjak <ubiz...@gmail.com> >>> >>> * config/i386/i386.md (*movdi_internal_rex64): Use "!o" constraint >>> instead of "!m" for operand 0, alternative 4. >>> (*movdf_internal_rex64): Ditto for operand 0, alernative 6. >>> >>> 2011-12-07 Teresa Johnson <tejohn...@google.com> >>> >>> * gcc.target/i386/movdi-rex64.c: New. >> >> Index: testsuite/gcc.target/i386/movdi-rex64.c >> =================================================================== >> --- testsuite/gcc.target/i386/movdi-rex64.c (revision 0) >> +++ testsuite/gcc.target/i386/movdi-rex64.c (revision 0) >> @@ -0,0 +1,11 @@ >> +/* { dg-do compile { target *-*-linux* } } */ >> +/* { dg-options "-fPIE -Wwrite-strings" } */ >> + >> +#include <string.h> >> +static __thread char buffer[25]; >> +const char * error_message (void) >> +{ >> +oops: >> + strcpy (buffer, "Unknown code "); >> + return 0; >> +} >> >> You don't need #include for compile tests, just use: >> >> --cut here-- >> /* { dg-do compile } */ >> /* { dg-options "-fPIE" } */ >> >> char *strcpy (char *dest, const char *src); >> >> static __thread char buffer[25]; >> >> const char >> * error_message (void) >> { >> strcpy (buffer, "Unknown code "); >> return 0; >> } >> --cut here-- >> >> Also this can be compiled everywhere, not just linux. > > Ok, I will change the testcase to replace the include and retest. > > Regarding the linux target restriction, though, I was concerned about > the -fPIE option used for the test case. I noticed that in 4.7 there > is a "pie" effective target keyword (check_effective_target_pie in > testsuite/lib/target-supports.exp). However, that does not yet exist > in 4.6, so rather than backport that as well I added the linux > restriction. I see the same restriction in the other tests that use > -fpie in gcc.target/i386 (pr39013-[12].c). What do you think? Ah, I see. Then pleasee add back linux target selctor for 4.6 and add fpie effective target check for 4.7. Thanks, Uros.