http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53222
Bug #: 53222 Summary: dejagnu trims leading whitespace Classification: Unclassified Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: testsuite AssignedTo: unassig...@gcc.gnu.org ReportedBy: m...@gcc.gnu.org This patch should still allow us to prune all caret diagnostics, since they always start with whitespace: Index: libstdc++-v3/testsuite/lib/prune.exp =================================================================== --- libstdc++-v3/testsuite/lib/prune.exp (revision 187039) +++ libstdc++-v3/testsuite/lib/prune.exp (working copy) @@ -34,11 +34,11 @@ proc libstdc++-dg-prune { system text } # send_user "Before:$text\n" # Ignore caret diagnostics. Unfortunately dejaGNU trims leading # spaces, so one cannot rely on them being present. - regsub -all "(^|\n)\[^\n\]+\n *\\^\n" $text "\n" text + regsub -all "(^ |\n )\[^\n\]+\n *\\^\n" $text "\n" text # Cygwin warns about -ffunction-sections regsub -all "(^|\n)\[^\n\]*: -ffunction-sections may affect debugging on some targets\[^\n\]*" $text "" text # Remove parts of warnings that refer to location of previous However, DejaGNU seems to trim leading whitespace: /home/manuel/test2/src/libstdc++-v3/testsuite/17_intro/using_namespace_std_tr1_neg.cc:66:27: error: expected namespace-name before ';' token^M using namespace std::tr1; // { dg-error "is not a namespace-name" }^M ^^M PASS: 17_intro/using_namespace_std_tr1_neg.cc (test for errors, line 66) PASS: 17_intro/using_namespace_std_tr1_neg.cc (test for errors, line 66) FAIL: 17_intro/using_namespace_std_tr1_neg.cc (test for excess errors) Excess errors: using namespace std::tr1; // { dg-error "is not a namespace-name" } ^ This is unfortunate, because it makes quite hard to match any arbitrary output.