| 1 | * Introduction -*-compilation-*- (Copyright information at end of file) |
| 2 | |
| 3 | This shows the different kinds of messages compile recognizes by default and |
| 4 | how they are rendered. It is intended both to help you decide which matchers |
| 5 | you need and as a test of the matchers. Move the mouse over a colored part or |
| 6 | use `compilation-message-face', to see how much text was actually matched. |
| 7 | |
| 8 | Note that the following example line should NOT be highlighted: |
| 9 | Compilation started at Sat Jul 8 15:19:25 |
| 10 | |
| 11 | The important part is the symbol(s) line at the beginning of each entry. |
| 12 | These are the symbols you can customize `compilation-error-regexp-alist' for, |
| 13 | to match the messages shown in that entry. A few complex cases have more than |
| 14 | one symbol, which should be selected together. |
| 15 | |
| 16 | |
| 17 | * Absoft FORTRAN 77 Compiler 3.1.3 |
| 18 | |
| 19 | symbol: absoft |
| 20 | |
| 21 | Error on line 3 of t.f: Execution error unclassifiable statement |
| 22 | Line 45 of "foo.c": bloofle undefined |
| 23 | error on line 19 of fplot.f: spelling error? |
| 24 | warning on line 17 of fplot.f: data type is undefined for variable d |
| 25 | |
| 26 | |
| 27 | * Ada & Mpatrol (memory leak debugger) |
| 28 | |
| 29 | symbol: ada |
| 30 | |
| 31 | This matches only the end of line, the beginning is covered by GNU style. |
| 32 | |
| 33 | foo.adb:61:11: [...] in call to size declared at foo.ads:11 |
| 34 | 0x8008621 main+16 at error.c:17 |
| 35 | |
| 36 | |
| 37 | * IBM AIX PS/2 C version 1.1 |
| 38 | |
| 39 | symbol: aix |
| 40 | |
| 41 | ****** Error number 140 in line 8 of file errors.c ****** |
| 42 | |
| 43 | |
| 44 | * Ant Java: works at least for jikes and javac |
| 45 | |
| 46 | symbol: ant |
| 47 | |
| 48 | The regexps found on http://ant.apache.org/faq.html, and since integrated in |
| 49 | both Emacsen, were hairy. Why so many numbers for jikes -- is one a column |
| 50 | number? |
| 51 | |
| 52 | [javac] /src/DataBaseTestCase.java:27: unreported exception ... |
| 53 | [javac] /src/DataBaseTestCase.java:49: warning: finally clause cannot complete normally |
| 54 | [jikes] foo.java:3:5:7:9: blah blah |
| 55 | |
| 56 | |
| 57 | * Bash v2 |
| 58 | |
| 59 | symbol: bash |
| 60 | |
| 61 | a.sh: line 1: ls-l: command not found |
| 62 | |
| 63 | |
| 64 | * Borland C++, C++Builder |
| 65 | |
| 66 | symbol: borland |
| 67 | |
| 68 | Error ping.c 15: Unable to open include file 'sys/types.h' |
| 69 | Warning ping.c 68: Call to function 'func' with no prototype |
| 70 | Error E2010 ping.c 15: Unable to open include file 'sys/types.h' |
| 71 | Warning W1022 ping.c 68: Call to function 'func' with no prototype |
| 72 | |
| 73 | |
| 74 | * Caml & Python |
| 75 | |
| 76 | symbol: caml |
| 77 | |
| 78 | File "foobar.ml", lines 5-8, characters 20-155: blah blah |
| 79 | File "F:\ocaml\sorting.ml", line 65, characters 2-145: |
| 80 | Warning: this expression should have type unit. |
| 81 | File "/usr/share/gdesklets/display/TargetGauge.py", line 41, in add_children |
| 82 | File \lib\python\Products\PythonScripts\PythonScript.py, line 302, in _exec |
| 83 | File "/tmp/foo.py", line 10 |
| 84 | |
| 85 | |
| 86 | * Apollo cc, 4.3BSD fc & IBM RS6000/AIX xlc compiler & Microtec mcc68k & GNAT (July 94) |
| 87 | |
| 88 | symbol: comma |
| 89 | |
| 90 | "foo.f", line 3: Error: syntax error near end of statement |
| 91 | "vvouch.c", line 19.5: 1506-046 (S) Syntax error. |
| 92 | "foo.c", line 32 pos 1; (E) syntax error; unexpected symbol: "lossage" |
| 93 | "foo.adb", line 2(11): warning: file name does not match ... |
| 94 | "src/swapping.c", line 30.34: 1506-342 (W) "/*" detected in comment. |
| 95 | |
| 96 | |
| 97 | * EDG C/C++ |
| 98 | |
| 99 | symbol: edg-1 edg-2 |
| 100 | |
| 101 | build/intel/debug/../../../struct.cpp(42): error: identifier "foo" is undefined |
| 102 | build/intel/debug/../../../struct.cpp(44): warning #1011: missing return statement at end of ... |
| 103 | build/intel/debug/../../../iptr.h(302): remark #981: operands are evaluated in unspecified order |
| 104 | detected during ... at line 62 of "build/intel/debug/../../../trace.h" |
| 105 | |
| 106 | |
| 107 | * EPC F90 compiler |
| 108 | |
| 109 | symbol: epc |
| 110 | |
| 111 | Error 24 at (2:progran.f90) : syntax error |
| 112 | |
| 113 | |
| 114 | * Fortran checker |
| 115 | |
| 116 | symbols: ftnchek |
| 117 | |
| 118 | Dummy arg W in module SUBA line 8 file arrayclash.f is array |
| 119 | L4 used at line 55 file test/assign.f; never set |
| 120 | Warning near line 10 file arrayclash.f: Module contains no executable |
| 121 | Nonportable usage near line 31 col 9 file assign.f: mixed default and explicit |
| 122 | |
| 123 | |
| 124 | * IAR Systems C Compiler |
| 125 | |
| 126 | symbol: iar |
| 127 | |
| 128 | "foo.c",3 Error[32]: Error message |
| 129 | "foo.c",3 Warning[32]: Error message |
| 130 | |
| 131 | |
| 132 | * IBM C/C++ Tools 2.01 |
| 133 | |
| 134 | symbol: ibm |
| 135 | |
| 136 | foo.c(2:0) : informational EDC0804: Function foo is not referenced. |
| 137 | foo.c(3:8) : warning EDC0833: Implicit return statement encountered. |
| 138 | foo.c(5:5) : error EDC0350: Syntax error. |
| 139 | |
| 140 | |
| 141 | * Ultrix MIPS RISC CC, DEC AXP OSF/1 cc, IRIX 5.2 & NAG Fortran |
| 142 | |
| 143 | symbol: irix |
| 144 | |
| 145 | ccom: Error: foo.c, line 2: syntax error |
| 146 | cc: Severe: /src/Python-2.3.3/Modules/_curses_panel.c, line 17: Cannot find file <panel.h> ... |
| 147 | cc: Info: foo.c, line 27: ... |
| 148 | cfe: Warning 712: foo.c, line 2: illegal combination of pointer and ... |
| 149 | cfe: Warning 600: xfe.c: 170: Not in a conditional directive while ... |
| 150 | /usr/lib/cmplrs/cc/cfe: Error: foo.c: 1: blah blah |
| 151 | /usr/lib/cmplrs/cc/cfe: warning: foo.c: 1: blah blah |
| 152 | foo bar: baz.f, line 27: ... |
| 153 | |
| 154 | |
| 155 | * Java Exception & Valgrind (memory debugger for x86 GNU/Linux) |
| 156 | |
| 157 | symbol: java |
| 158 | |
| 159 | Register 6 contains wrong type |
| 160 | at org.foo.ComponentGateway.doGet(ComponentGateway.java:172) |
| 161 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) |
| 162 | ==1332== Invalid write of size 1 |
| 163 | ==1332== at 0x4040743C: System::getErrorString() (../src/Lib/System.cpp:217) |
| 164 | ==1332== by 0x8008621: main (vtest.c:180) |
| 165 | |
| 166 | |
| 167 | * IBM jikes |
| 168 | |
| 169 | symbols: jikes-file jikes-line |
| 170 | |
| 171 | Jikes separates file names from the actual error messages. For visual |
| 172 | feedback the underline and the word "Error" on the 3rd line is fontified like |
| 173 | a file name would be. |
| 174 | |
| 175 | Found 2 semantic errors compiling "../javax/swing/BorderFactory.java": |
| 176 | |
| 177 | 150. case '{': |
| 178 | <-> |
| 179 | *** Error: The type of this expression, "char", is not ... |
| 180 | |
| 181 | 312. return new CompoundBorder(outside, inside); |
| 182 | <---------------------------------> |
| 183 | *** Error: No match was found for constructor ... |
| 184 | |
| 185 | Issued 1 semantic warning compiling "java/awt/Toolkit.java": |
| 186 | |
| 187 | 504. void imgProduceImage( ImageNativeProducer prod, Ptr imgData); |
| 188 | <-----------------> |
| 189 | *** Warning: The type "ImageNativeProducer" is defined ... |
| 190 | |
| 191 | |
| 192 | * GCC include message |
| 193 | |
| 194 | symbol: gcc-include |
| 195 | |
| 196 | The last file, i.e. the one you are compiling, is the interesting one. |
| 197 | |
| 198 | In file included from /usr/include/c++/3.3/backward/warn.h:4, |
| 199 | from /usr/include/c++/3.3/backward/iostream.h:31, |
| 200 | from test_clt.cc:1: |
| 201 | |
| 202 | |
| 203 | * GNU style |
| 204 | |
| 205 | symbol: gnu |
| 206 | |
| 207 | foo.c:8: message |
| 208 | ../foo.c:8: W: message |
| 209 | /tmp/foo.c:8:warning message |
| 210 | foo/bar.py:8: FutureWarning message |
| 211 | foo.py:8: RuntimeWarning message |
| 212 | foo.c:8:I: message |
| 213 | foo.c:8.23: note: message |
| 214 | foo.c:8.23: info: message |
| 215 | foo.c:8:23:information: message |
| 216 | foo.c:8.23-45: Informational: message |
| 217 | foo.c:8-23: message |
| 218 | foo.c:8-45.3: message |
| 219 | foo.c:8.23-9.1: message |
| 220 | jade:dbcommon.dsl:133:17:E: missing argument for function call |
| 221 | G:/cygwin/dev/build-myproj.xml:54: Compiler Adapter 'javac' can't be found. |
| 222 | file:G:/cygwin/dev/build-myproj.xml:54: Compiler Adapter 'javac' can't be found. |
| 223 | {standard input}:27041: Warning: end of file not at end of a line; newline inserted |
| 224 | |
| 225 | |
| 226 | * Lucid Compiler, lcc 3.x |
| 227 | |
| 228 | symbol: lcc |
| 229 | |
| 230 | E, file.cc(35,52) Illegal operation on pointers |
| 231 | W, file.cc(36,52) blah blah |
| 232 | |
| 233 | |
| 234 | * makepp 1.20 |
| 235 | |
| 236 | symbol: makepp |
| 237 | |
| 238 | makepp: Scanning `/foo/bar.c' |
| 239 | makepp: warning: bla bla `/foo/bar.c' and `/foo/bar.h' |
| 240 | makepp: bla bla `/foo/Makeppfile:12' bla |
| 241 | makepp: bla bla `/foo/bar.c' and `/foo/bar.h' |
| 242 | |
| 243 | |
| 244 | * maven 2.0.9 |
| 245 | |
| 246 | symbol: maven |
| 247 | |
| 248 | FooBar.java:[111,53] no interface expected here |
| 249 | |
| 250 | |
| 251 | * MIPS lint; looks good for SunPro lint also |
| 252 | |
| 253 | symbols: mips-1 mips-2 |
| 254 | |
| 255 | This can match multiple times on a line. |
| 256 | |
| 257 | TrimMask (255) in solomon.c may be indistinguishable from TrimMasks (93) in solomon.c due to truncation |
| 258 | name defined but never used: LinInt in cmap_calc.c(199) |
| 259 | |
| 260 | |
| 261 | * Microsoft C/C++ |
| 262 | |
| 263 | symbol: msft |
| 264 | |
| 265 | This used to be less selective and allowed characters other than parens around |
| 266 | the line number, but that caused confusion for GNU-style error messages. This |
| 267 | used to reject spaces and dashes in file names, but they are valid now; so I |
| 268 | made it more strict about the error message that follows. |
| 269 | |
| 270 | keyboard handler.c(537) : warning C4005: 'min' : macro redefinition |
| 271 | d:\tmp\test.c(23) : error C2143: syntax error : missing ';' before 'if' |
| 272 | d:\tmp\test.c(1145) : see declaration of 'nsRefPtr' |
| 273 | |
| 274 | |
| 275 | * Open Watcom |
| 276 | |
| 277 | symbol: watcom |
| 278 | |
| 279 | ..\src\ctrl\lister.c(109): Error! E1009: Expecting ';' but found '{' |
| 280 | ..\src\ctrl\lister.c(120): Warning! W201: Unreachable code |
| 281 | |
| 282 | |
| 283 | * Oracle pro*c |
| 284 | |
| 285 | symbol: oracle |
| 286 | |
| 287 | This stupid precompiler wraps lines at column 80 in the middle of a file name. |
| 288 | There is no obvious way of detecting this or turning it off. But if you |
| 289 | delete the newline (probably needs M-x toggle-read-only), the file name will |
| 290 | automatically be reparsed, so that you can then go there. |
| 291 | |
| 292 | Semantic error at line 528, column 5, file erosacqdb.pc: |
| 293 | Error at line 41, column 10 in file /usr/src/sb/ODBI_BHP.hpp |
| 294 | PCC-02150: error at line 49, column 27 in file /usr/src/sb/ODBI_dxfgh.pc |
| 295 | PCC-00003: invalid SQL Identifier at column name in line 12 of file /usr/src/sb/ODBI_BHP.hpp |
| 296 | PCC-00004: mismatched IF/ELSE/ENDIF block at line 27 in file /usr/src/sb/ODBI_BHP.hpp |
| 297 | PCC-02151: line 21 column 40 file /usr/src/sb/ODBI_BHP.hpp: |
| 298 | |
| 299 | |
| 300 | * Perl |
| 301 | |
| 302 | symbol: perl |
| 303 | |
| 304 | The second sample, from the Perl-Glib module, is a Glib message put |
| 305 | through Perl warn() to get "at FILENAME line N". |
| 306 | |
| 307 | syntax error at automake line 922, near "':'" |
| 308 | Died at test.pl line 27. |
| 309 | store::odrecall('File_A', 'x2') called at store.pm line 90 |
| 310 | (in cleanup) something bad at foo.pl line 3 during global destruction. |
| 311 | |
| 312 | GLib-GObject-WARNING **: /build/buildd/glib2.0-2.14.5/gobject/gsignal.c:1741: instance `0x8206790' has no handler with id `1234' at t-compilation-perl-gtk.pl line 3. |
| 313 | |
| 314 | * PHP |
| 315 | |
| 316 | symbol: php |
| 317 | |
| 318 | Parse error: parse error, unexpected $ in main.php on line 59 |
| 319 | Fatal error: Call to undefined function: mysql_pconnect() in db.inc on line 66 |
| 320 | |
| 321 | * RXP |
| 322 | |
| 323 | symbol: rxp |
| 324 | |
| 325 | GPL XML validator at http://www.cogsci.ed.ac.uk/~richard/rxp.html |
| 326 | |
| 327 | Error: Mismatched end tag: expected </geroup>, got </group> |
| 328 | in unnamed entity at line 71 char 8 of file:///home/reto/test/group.xml |
| 329 | Warning: Start tag for undeclared element geroup |
| 330 | in unnamed entity at line 4 char 8 of file:///home/reto/test/group.xml |
| 331 | |
| 332 | |
| 333 | * Sparc Pascal |
| 334 | |
| 335 | symbols: sparc-pascal-file sparc-pascal-line sparc-pascal-example |
| 336 | |
| 337 | These messages don't contain a file name. Instead the compiler gives a |
| 338 | message whenever the file being compiled is changed. For visual feedback the |
| 339 | error code is fontified like a file name would be. |
| 340 | |
| 341 | Thu May 14 10:46:12 1992 mom3.p: |
| 342 | 20 linjer : array[1..4] of linje; |
| 343 | w 18480-----------^--- Inserted ';' |
| 344 | 20 linjer : array[1..4] of linje; |
| 345 | e 18480-----------^--- Inserted ';' |
| 346 | w 18520 line 61 - 0 is undefined |
| 347 | E 18520 line 61 - 0 is undefined |
| 348 | |
| 349 | |
| 350 | * SGI IRIX MipsPro 7.3 & Sun F90 & Cray C |
| 351 | |
| 352 | symbol: sun |
| 353 | |
| 354 | cc-1020 CC: REMARK File = CUI_App.h, Line = 735 |
| 355 | cc-1070 cc: WARNING File = linkl.c, Line = 38 |
| 356 | cf90-113 f90comp: ERROR NSE, File = Hoved.f90, Line = 16, Column = 3 |
| 357 | |
| 358 | |
| 359 | * Sun Ada (VADS, Solaris) |
| 360 | |
| 361 | symbol: sun-ada |
| 362 | |
| 363 | /home3/xdhar/rcds_rc/main.a, line 361, char 6:syntax error: "," inserted |
| 364 | |
| 365 | |
| 366 | * 4.3BSD grep, cc, lint |
| 367 | |
| 368 | symbol: 4bsd |
| 369 | |
| 370 | /usr/src/foo/foo.c(8): warning: w may be used before set |
| 371 | /usr/src/foo/foo.c(9): error: w is used before set |
| 372 | strcmp: variable # of args. llib-lc(359) :: /usr/src/foo/foo.c(8) |
| 373 | bloofle defined( /users/wolfgang/foo.c(4) ), but never used |
| 374 | |
| 375 | |
| 376 | * GCOV (test coverage program) |
| 377 | |
| 378 | symbol: gcov-file gcov-bb-file gcov-never-called-line gcov-called-line |
| 379 | |
| 380 | -: 0:Source:foo.c |
| 381 | -: 0:Object:foo.bb |
| 382 | -: 1:/* $ gcc -fprofile-arcs -ftest-coverage foo.c |
| 383 | -: 2: $ ./a.out |
| 384 | -: 3: $ gcov foo.c |
| 385 | -: 4: LANG=C gcov foo.c |
| 386 | -: 5: 62.50% of 8 lines executed in file foo.c |
| 387 | -: 6: Creating foo.c.gcov.*/ |
| 388 | -: 7:int |
| 389 | -: 8:main(int argc, char ** argv) |
| 390 | 1: 9:{ |
| 391 | 1: 10: int r; |
| 392 | 1: 11: if (argc == 1) |
| 393 | 1: 12: r = 1; |
| 394 | #####: 13: else if (argc == 2) |
| 395 | #####: 14: r = 2; |
| 396 | -: 15: else |
| 397 | #####: 16: r = 0; |
| 398 | 1: 17: return r; |
| 399 | -: 18:} |
| 400 | |
| 401 | |
| 402 | * Podchecker error messages, per Pod::Checker |
| 403 | |
| 404 | symbol: perl--Pod::Checker |
| 405 | |
| 406 | *** ERROR: Spurious text after =cut at line 193 in file foo.pm |
| 407 | *** ERROR: =over on line 37 without closing =back at line EOF in file bar.pm |
| 408 | *** ERROR: =over on line 1 without closing =back (at head1) at line 3 in file x.pod |
| 409 | |
| 410 | |
| 411 | * Perl Test module error messages |
| 412 | |
| 413 | symbol: perl--Test |
| 414 | |
| 415 | # Failed test 1 in foo.t at line 6 |
| 416 | |
| 417 | |
| 418 | * Perl Test::Harness output |
| 419 | |
| 420 | symbol: perl--Test::Harness |
| 421 | |
| 422 | NOK 1# Test 1 got: "1234" (t/foo.t at line 46) |
| 423 | |
| 424 | |
| 425 | * Perl HTML::Lint::Error::as_string() |
| 426 | |
| 427 | symbol: weblint |
| 428 | |
| 429 | index.html (13:1) Unknown element <fdjsk> |
| 430 | |
| 431 | |
| 432 | * Directory tracking |
| 433 | |
| 434 | Directories are matched via `compilation-directory-matcher'. Files which are |
| 435 | not shown as full paths are searched for relative to the directory where the |
| 436 | message was issued. |
| 437 | |
| 438 | Entering directory `/a/b/c' |
| 439 | Leaving directory `/a/b/c' |
| 440 | gmake[2]: Entering directory `/a/b/c' |
| 441 | makepp: Leaving directory `/a/b/c' |
| 442 | |
| 443 | |
| 444 | * Miscellaneous |
| 445 | |
| 446 | These are not messages that can be gone to. They are only highlighted via |
| 447 | `compilation-mode-font-lock-keywords' to recognize some useful information at |
| 448 | a glance. |
| 449 | |
| 450 | checking dynamic linker characteristics... GNU/Linux ld.so |
| 451 | checking if libtool supports shared libraries... yes |
| 452 | checking whether to build shared libraries... yes |
| 453 | checking whether -lc should be explicitly linked in... (cached) no |
| 454 | checking For GLIB - version >= 2.0.0... yes (version 2.1.0) |
| 455 | checking FONTCONFIG_CFLAGS... |
| 456 | g++ -o foo.o foo.cc |
| 457 | tool1 -output=foo foo.x |
| 458 | tool2 --outfile foo foo.y |
| 459 | |
| 460 | Compilation started at Wed Jul 20 12:20:10 |
| 461 | Compilation interrupt at Wed Jul 20 12:20:10 |
| 462 | Compilation killed at Wed Jul 20 12:20:10 |
| 463 | Compilation terminated at Wed Jul 20 12:20:10 |
| 464 | Compilation exited abnormally with code 1 at Wed Jul 20 12:21:12 |
| 465 | Compilation segmentation fault at Thu Jul 13 10:55:49 |
| 466 | Compilation finished at Thu Jul 21 15:02:15 |
| 467 | |
| 468 | \f |
| 469 | Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 |
| 470 | Free Software Foundation, Inc. |
| 471 | |
| 472 | COPYING PERMISSIONS: |
| 473 | |
| 474 | This document is free software: you can redistribute it and/or modify |
| 475 | it under the terms of the GNU General Public License as published by |
| 476 | the Free Software Foundation, either version 3 of the License, or |
| 477 | (at your option) any later version. |
| 478 | |
| 479 | This program is distributed in the hope that it will be useful, |
| 480 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 481 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 482 | GNU General Public License for more details. |
| 483 | |
| 484 | You should have received a copy of the GNU General Public License |
| 485 | along with this program. If not, see <http://www.gnu.org/licenses/>. |