Skip to content

Commit 0189aef

Browse files
committed
gcc-parser: handle Clang's "NNN errors generated." messages
... without reporting syntax errors Reported-By: Lukas Zaoral
1 parent 1055ff0 commit 0189aef

File tree

5 files changed

+15
-1
lines changed

5 files changed

+15
-1
lines changed

gcc-parser.cc

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,11 +174,15 @@ EToken Tokenizer::readNext(DefEvent *pEvt) {
174174
return tok;
175175
}
176176

177+
#define RE_CLANG_EVT "(?:error|warning)"
178+
#define RE_CLANG_CNT_EVTS "(?:(?:1 " RE_CLANG_EVT \
179+
")|(?:[0-9]+ " RE_CLANG_EVT "s))"
180+
177181
class NoiseFilter: public AbstractTokenFilter {
178182
public:
179183
NoiseFilter(ITokenizer *slave):
180184
AbstractTokenFilter(slave),
181-
reClangWarnCnt_("^((1 warning)|([0-9]+ warnings)) generated\\.$")
185+
reClangWarnCnt_("^" RE_CLANG_CNT_EVTS " generated\\.$")
182186
{
183187
}
184188

tests/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ test_csgrep(csgrep "52-gcc-parser-clang-nss" )
172172
test_csgrep(csgrep "53-csparser-note-events" )
173173
test_csgrep(csgrep "54-csparser-unknown-lineno" )
174174
test_csgrep(csgrep "55-csparser-pylint-copr" )
175+
test_csgrep(csgrep "56-gcc-sparser-clang-error" )
175176
test_csparser(csparser-5.8 00)
176177
test_csparser(csparser-5.8 01)
177178
test_csparser(csparser-5.8 02)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2>&1
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
test.c:3:5: error: use of undeclared identifier 'test'
2+
test;
3+
^
4+
1 error generated.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Error: COMPILER_WARNING:
2+
test.c:3:5: error: use of undeclared identifier 'test'
3+
# test;
4+
# ^

0 commit comments

Comments
 (0)