https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71767

--- Comment #24 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
The patch in comment 20 (and SDK 10.9) causes the failures of the tests
gcc.dg/torture/darwin-cfstring-3.c and g++.dg/torture/darwin-cfstring-3.C with
-m32, see https://gcc.gnu.org/ml/gcc-testresults/2016-09/msg02290.html. These
failures are due to the fact that lC is now emitted instead of LC and are
silenced with the following patch

--- ../_clean/gcc/testsuite/gcc.dg/torture/darwin-cfstring-3.c  2014-05-10
23:16:48.000000000 +0200
+++ gcc/testsuite/gcc.dg/torture/darwin-cfstring-3.c    2016-09-24
17:03:58.000000000 +0200
@@ -24,7 +24,7 @@ void foo(void) {
   s0 = s1;
 }

-/* { dg-final { scan-assembler "\\.long\[
\\t\]+___CFConstantStringClassReference\n\[ \\t\]*\\.long\[ \\t\]+1992\n\[
\\t\]*\\.long\[ \\t\]+LC.*\n\[ \\t\]*\\.long\[ \\t\]+4\n" { target {
*-*-darwin* && { ! lp64 } } } } } */
-/* { dg-final { scan-assembler "\\.long\[
\\t\]+___CFConstantStringClassReference\n\[ \\t\]*\\.long\[ \\t\]+1992\n\[
\\t\]*\\.long\[ \\t\]+LC.*\n\[ \\t\]*\\.long\[ \\t\]+10\n" { target {
*-*-darwin* && { ! lp64 } } } } } */
+/* { dg-final { scan-assembler "\\.long\[
\\t\]+___CFConstantStringClassReference\n\[ \\t\]*\\.long\[ \\t\]+1992\n\[
\\t\]*\\.long\[ \\t\]+\[lL\]C.*\n\[ \\t\]*\\.long\[ \\t\]+4\n" { target {
*-*-darwin* && { ! lp64 } } } } } */
+/* { dg-final { scan-assembler "\\.long\[
\\t\]+___CFConstantStringClassReference\n\[ \\t\]*\\.long\[ \\t\]+1992\n\[
\\t\]*\\.long\[ \\t\]+\[lL\]C.*\n\[ \\t\]*\\.long\[ \\t\]+10\n" { target {
*-*-darwin* && { ! lp64 } } } } } */
 /* { dg-final { scan-assembler
".quad\t___CFConstantStringClassReference\n\t.long\t1992\n\t.space
4\n\t.quad\t.*\n\t.quad\t4\n" { target { *-*-darwin* && {  lp64 } } } } } */
 /* { dg-final { scan-assembler
".quad\t___CFConstantStringClassReference\n\t.long\t1992\n\t.space
4\n\t.quad\t.*\n\t.quad\t10\n" { target { *-*-darwin* && {  lp64 } } } } } */
--- ../_clean/gcc/testsuite/g++.dg/torture/darwin-cfstring-3.C  2014-05-10
23:18:01.000000000 +0200
+++ gcc/testsuite/g++.dg/torture/darwin-cfstring-3.C    2016-09-24
17:02:39.000000000 +0200
@@ -24,7 +24,7 @@ void foo(void) {
   s0 = s1;
 }

-/* { dg-final { scan-assembler "\\.long\[
\\t\]+___CFConstantStringClassReference\n\[ \\t\]*\\.long\[ \\t\]+1992\n\[
\\t\]*\\.long\[ \\t\]+LC.*\n\[ \\t\]*\\.long\[ \\t\]+4\n" { target {
*-*-darwin* && { ! lp64 } } } } } */
-/* { dg-final { scan-assembler "\\.long\[
\\t\]+___CFConstantStringClassReference\n\[ \\t\]*\\.long\[ \\t\]+1992\n\[
\\t\]*\\.long\[ \\t\]+LC.*\n\[ \\t\]*\\.long\[ \\t\]+10\n" { target {
*-*-darwin* && { ! lp64 } } } } } */
+/* { dg-final { scan-assembler "\\.long\[
\\t\]+___CFConstantStringClassReference\n\[ \\t\]*\\.long\[ \\t\]+1992\n\[
\\t\]*\\.long\[ \\t\]+\[lL\]C.*\n\[ \\t\]*\\.long\[ \\t\]+4\n" { target {
*-*-darwin* && { ! lp64 } } } } } */
+/* { dg-final { scan-assembler "\\.long\[
\\t\]+___CFConstantStringClassReference\n\[ \\t\]*\\.long\[ \\t\]+1992\n\[
\\t\]*\\.long\[ \\t\]+\[lL\]C.*\n\[ \\t\]*\\.long\[ \\t\]+10\n" { target {
*-*-darwin* && { ! lp64 } } } } } */
 /* { dg-final { scan-assembler
".quad\t___CFConstantStringClassReference\n\t.long\t1992\n\t.space
4\n\t.quad\t.*\n\t.quad\t4\n" { target { *-*-darwin* && {  lp64 } } } } } */
 /* { dg-final { scan-assembler
".quad\t___CFConstantStringClassReference\n\t.long\t1992\n\t.space
4\n\t.quad\t.*\n\t.quad\t10\n" { target { *-*-darwin* && {  lp64 } } } } } */

I don't know if the replacement of LC with lC is really intended and if yes, a
better fix would be to use "-mtarget-linker 85.2".

Reply via email to