Index: gcc/gcc/testsuite/g++.dg/debug/dwarf2/pubnames-1.C |
diff --git a/gcc/gcc/testsuite/g++.dg/debug/dwarf2/pubnames-1.C b/gcc/gcc/testsuite/g++.dg/debug/dwarf2/pubnames-1.C |
index f5089ca2da81af1e0449ee3674d5e020b36c3294..543439da323e0190ba00b81526600acef68de0ce 100644 |
--- a/gcc/gcc/testsuite/g++.dg/debug/dwarf2/pubnames-1.C |
+++ b/gcc/gcc/testsuite/g++.dg/debug/dwarf2/pubnames-1.C |
@@ -1,9 +1,18 @@ |
// Contributed by Dodji Seketeli <dodji@redhat.com> |
// Origin PR debug/39706 |
-// { dg-options "-g -dA" } |
+// { dg-options "-g -dA -fno-merge-debug-strings" } |
// { dg-do compile } |
-// { dg-final { scan-assembler-times ".debug_pubnames" 1 } } |
-// { dg-final { scan-assembler-times "\"main\".*external name" 1 } } |
+// |
+// There should be one debug_pubnames section generated. |
+// On Darwin though, there is also a label pointing at the begining of the |
+// debug_pubnames section. The assembly code of that label adds an occurence |
+// of section declaration assembly. So on Darwin, we need to check for two |
+// occurences of the debug_pubnames section declaration. |
+// { dg-final { scan-assembler-times "\.section\[\t \].*?debug_pubnames" 1 { target { ! *-*-darwin* } } } } |
+// { dg-final { scan-assembler-times "\.section\[\t \].*?debug_pubnames" 2 { target { *-*-darwin* } } } } |
+// |
+// Then check of the presence of the names we are interested in. |
+// { dg-final { scan-assembler-times "\"main.0\".*external name" 1 } } |
// { dg-final { scan-assembler-times "\"ns::ns_x.*external name" 1 } } |
// { dg-final { scan-assembler-times "\"y::y_x.*external name" 1 } } |
@@ -11,4 +20,3 @@ namespace ns { int ns_x; } |
class y { public: static int y_x; }; |
int y::y_x; |
int main() { return ns::ns_x; } |
- |