Hi Jason,
The following tests for g++.dg/ext/fnname5.C fail on darwin
FAIL: g++.dg/ext/fnname5.C -std=c++11 scan-assembler .string\\t"foo"
FAIL: g++.dg/ext/fnname5.C -std=c++11 scan-assembler .string\\t"void
A::foo\\\\(int\\\\)"
FAIL: g++.dg/ext/fnname5.C -std=c++14 scan-assembler .string\\t"foo"
FAIL: g++.dg/ext/fnname5.C -std=c++14 scan-assembler .string\\t"void
A::foo\\\\(int\\\\)"
FAIL: g++.dg/ext/fnname5.C -std=c++98 scan-assembler .string\\t"foo"
FAIL: g++.dg/ext/fnname5.C -std=c++98 scan-assembler .string\\t"void
A::foo\\\\(int\\\\) »
AFAICT the corresponding patterns are
.ascii "foo\0"
.ascii "void A::foo(int)\0 »
This is fixed by the following patch
--- ../_clean/gcc/testsuite/g++.dg/ext/fnname5.C 2016-03-25
22:46:32.000000000 +0100
+++ gcc/testsuite/g++.dg/ext/fnname5.C 2016-03-26 09:04:51.000000000 +0100
@@ -29,5 +29,5 @@ main ()
/* { dg-final { scan-assembler-not "_ZZN1A3fooEvE12__FUNCTION__" } } */
/* { dg-final { scan-assembler-not "_ZZN1A3fooEiE12__FUNCTION__" } } */
/* { dg-final { scan-assembler-not "_ZZN1A3fooEiE19__PRETTY_FUNCTION__" } } */
-/* { dg-final { scan-assembler ".string \"void A::foo\\(int\\)\"" } } */
-/* { dg-final { scan-assembler ".string \"foo\"" } } */
+/* { dg-final { scan-assembler ".(string|ascii) \"void A::foo\\(int\\)(.0)?\""
} } */
+/* { dg-final { scan-assembler ".(string|ascii) \"foo(.0)?\"" } } */
TIA
Dominique