Clang uses a slight variation of GCC's include format, causing includes
to be treated as warnings instead of informational messages. Use a new
regular expression instead.
* lisp/progmodes/compile.el
(compilation-error-regexp-alist-alist): New element
`clang-include' for Clang-style "included from" lines.
* test/lisp/progmodes/compile-tests.el
(compile-tests--test-regexps-data): Add unit test.
nil 1 nil 2 0
(2 (compilation-face '(3))))
+ (clang-include
+ ,(rx bol "In file included from "
+ (group (+ (not (any ?\n ?:)))) ?:
+ (group (+ (any (?0 . ?9)))) ?:
+ eol)
+ 1 2 nil 0)
+
(gcc-include
"^\\(?:In file included \\| \\|\t\\)from \
\\([0-9]*[^0-9\n]\\(?:[^\n :]\\| [^-/\n]\\|:[^ \n]\\)*?\\):\
1 nil 302 "\\lib\\python\\Products\\PythonScripts\\PythonScript.py")
("File \"/tmp/foo.py\", line 10"
1 nil 10 "/tmp/foo.py")
+ ;; clang-include
+ ("In file included from foo.cpp:2:"
+ 1 nil 2 "foo.cpp" 0)
;; cmake cmake-info
("CMake Error at CMakeLists.txt:23 (hurz):"
1 nil 23 "CMakeLists.txt")