bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

{maint} tests: more possible error compiler messages for "#error"


From: Akim Demaille
Subject: {maint} tests: more possible error compiler messages for "#error"
Date: Thu, 8 Nov 2012 10:27:21 +0100

commit 2cf5f72e9e3cbc7fdb5cb0a618db7b4fc2440a68
Author: Akim Demaille <address@hidden>
Date:   Thu Nov 8 10:25:15 2012 +0100

    tests: more possible error compiler messages for "#error"
    
    * tests/synclines.at (AT_SYNCLINES_COMPILE): Adjust for Clang.
    Verified with GCC 4.0, 4.2 to 4.8, and Clang 2.9, 3.2: none skip.

diff --git a/tests/synclines.at b/tests/synclines.at
index 63ae685..751db7c 100644
--- a/tests/synclines.at
+++ b/tests/synclines.at
@@ -47,7 +47,8 @@ m4_define([AT_SYNCLINES_COMPILE],
 # =>
 #   input.y:4: #error "8"
 #
-# The message may include a caret-error:
+# The message may include a caret-error (indented by GCC 4.8,
+# not by clang 3.2):
 #
 #   input.y:1:2: error: #error "1"
 #    #error "1"
@@ -63,13 +64,31 @@ m4_define([AT_SYNCLINES_COMPILE],
 #
 #   distcc[35882] (dcc_connect_by_name) ERROR: failed to look up host 
"chrisimac": Unknown host
 #   distcc[35882] Warning: failed to distribute input.c to chrisimac/4, 
running locally instead
-
+#
+# The compiler might end by the number of messages issued (Clang 3.2):
+#
+#    syncline.c:1:2: error: "1"
+#    #error "1"
+#     ^
+#    1 error generated.
 AT_CHECK([[$PERL -p -0777 - stderr <<\EOF
+  # 1. Remove useless lines.
+
+  # distcc clutter.
   s/^distcc\[\d+\] .*\n//gm;
-  s/^([^:]+:\d+)[.:][^:]+:(.+)$/$][1:$][2/gm;
-  s/^([^:]+:\d+):[^#]*( #error)/$][1:$][2/gm;
+  # Function context.
   s/^[^:]*: In function '[^']+':\n//gm;
-  s/^\ +#error.*\n\ *\^\n//gm;
+  # Caret error.
+  s/^ *#error.*\n *\^\n//gm;
+  # Number of errors.
+  s/^1 error generated\.\n//gm;
+
+  # 2. Normalize the lines we kept.
+
+  # Remove column.
+  s/^([^:]+:\d+)[.:][^:]+:(.+)$/$][1:$][2/gm;
+  # Map all combinations of "error: " and "#error: " to "#error ".
+  s/^([^:]+:\d+):( |#error|error|:)+/$][1: #error /gm;
 EOF
 ]],
   0, [stdout])




reply via email to

[Prev in Thread] Current Thread [Next in Thread]