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