SDCC has an option --vc that outputs MS style error messages. Unfortunately the $msCompile problem matcher built into VSCode is rather strict about certain elements in the message being present and SDCC doesn't comply. This seems to be the minimum for it to work:
${msg.file}(${msg.line},${msg.pos}) : ${msg.severity} ${msg.code} :
${msg.message}
ie: there must be a filename, line number, character position,
severity, code and message and the spaces between elements is
important.
It'd be great if there was an option to generate messages with this message format.
Also, as a side note, it seems like the messages generated by SDCC vary in format
somewhat. Sometimes "error", sometimes "syntax error", sometimes an
error/warning code, sometimes not. Sometimes there's a column number
at end of line, sometimes with the line number and sometimes not at
all.
eg:
main.c:6:11: error: missing ')' in macro parameter list
main.c:21: syntax error: token -> '%' ; column 1
main.c:19: error 20: Undefined identifier 'unknown'
main.c:20: warning 112: function 'unknown' implicit declaration
These inconsistencies makes writing a problem matcher regex rather awkward.