]> git.eshelyaron.com Git - emacs.git/commitdiff
Improve error parsing for GCC -fanalyzer output
authorPhilip Kaludercic <philipk@posteo.net>
Mon, 15 Nov 2021 23:05:11 +0000 (00:05 +0100)
committerPhilip Kaludercic <philipk@posteo.net>
Sun, 21 Nov 2021 18:00:40 +0000 (19:00 +0100)
* compile.el (compilation-error-regexp-alist-alist): Adjust gnu rule
* compile-tests.el (compile-tests--test-regexps-data): Add testcase

lisp/progmodes/compile.el
test/lisp/progmodes/compile-tests.el

index 14da5880203604980ccacfb1612928abb97ca57b..c0e16ce35155204322f8cf904d0d8b4df25e34b9 100644 (file)
@@ -351,7 +351,10 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))
              ;; from Ruby, but it is unclear whether it is actually
              ;; used since the gcc-include rule above seems to cover
              ;; it.
-             (regexp "[ \t]+\\(?:in \\|from\\)")))
+             (regexp "[ \t]+\\(?:in \\|from\\)")
+             ;; Skip indentation generated by tools like GCC's
+             ;; -fanalyzer.
+             (: (+ space) "|")))
 
        ;; File name group.
        (group-n 1
index 2a3bb3dafaea8b9930ca932507de35d8a18dd56b..c714b9ecfe573b5857169d3ca60a10c5340aca98 100644 (file)
     (gnu "foo.c:8:23:information: message" 1 23 8 "foo.c")
     (gnu "foo.c:8.23-45: Informational: message" 1 (23 . 45) (8 . nil) "foo.c")
     (gnu "foo.c:8-23: message" 1 nil (8 . 23) "foo.c")
+    (gnu "   |foo.c:8: message" 1 nil 8 "foo.c")
     ;; The next one is not in the GNU standards AFAICS.
     ;; Here we seem to interpret it as LINE1-LINE2.COL2.
     (gnu "foo.c:8-45.3: message" 1 (nil . 3) (8 . 45) "foo.c")