Skip to content

Commit 7edc921

Browse files
committed
gcc-parser: move [-W..] suffix to the key event ID
... in COMPILER_WARNING reports
1 parent 49914d0 commit 7edc921

13 files changed

+1233
-1213
lines changed

gcc-parser.cc

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -540,7 +540,8 @@ class PostProcessor {
540540
public:
541541
PostProcessor():
542542
reGccAnalCoreEvt_("^(.*) (\\[-Wanalyzer-[A-Za-z0-9-]+\\])$"),
543-
reGccAnalCwe_("^(.*) \\[CWE-([0-9]+)\\]$")
543+
reGccAnalCwe_("^(.*) \\[CWE-([0-9]+)\\]$"),
544+
reGccWarningEvt_("^(.*) (\\[-W[A-Za-z0-9-]+\\])$")
544545
{
545546
}
546547

@@ -550,9 +551,11 @@ class PostProcessor {
550551
private:
551552
const boost::regex reGccAnalCoreEvt_;
552553
const boost::regex reGccAnalCwe_;
554+
const boost::regex reGccWarningEvt_;
553555
const LangDetector langDetector_;
554556

555557
void transGccAnal(Defect *pDef);
558+
void transGccSuffix(Defect *pDef);
556559
};
557560

558561
void PostProcessor::transGccAnal(Defect *pDef) {
@@ -580,8 +583,25 @@ void PostProcessor::transGccAnal(Defect *pDef) {
580583
keyEvt.msg = sm[/* msg */ 1];
581584
}
582585

586+
void PostProcessor::transGccSuffix(Defect *pDef) {
587+
if ("COMPILER_WARNING" != pDef->checker)
588+
return;
589+
590+
// check for [-#...] suffix in message of the key event
591+
DefEvent &keyEvt = pDef->events[pDef->keyEventIdx];
592+
boost::smatch sm;
593+
if (!boost::regex_match(keyEvt.msg, sm, reGccWarningEvt_))
594+
return;
595+
596+
// append [-W...] to key event ID and remove it from event msg
597+
keyEvt.event += sm[/* id */ 2];
598+
// this invalidates sm
599+
keyEvt.msg = sm[/* msg */ 1];
600+
}
601+
583602
void PostProcessor::apply(Defect *pDef) {
584603
this->transGccAnal(pDef);
604+
this->transGccSuffix(pDef);
585605
this->langDetector_.inferLangFromChecker(pDef);
586606
}
587607

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
--quiet --path '^/builddir/build/BUILD/' --event=warning --remove-duplicates
1+
--quiet --path '^/builddir/build/BUILD/' --event='warning.*' --remove-duplicates

tests/csgrep/12-llvm-build-warnings-stdout.txt

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ Error: COMPILER_WARNING:
7171
# ^
7272

7373
Error: COMPILER_WARNING:
74-
/builddir/build/BUILD/libvirt-0.10.2/src/util/processinfo.c:64:13: warning: expression result unused [-Wunused-value]
74+
/builddir/build/BUILD/libvirt-0.10.2/src/util/processinfo.c:64:13: warning[-Wunused-value]: expression result unused
7575
# CPU_SET_S(i, masklen, mask);
7676
# ^~~~~~~~~~~~~~~~~~~~~~~~~~~
7777
/builddir/build/BUILD/libvirt-0.10.2/src/util/processinfo.c:24: included_from: Included from here.
@@ -119,7 +119,7 @@ Error: COMPILER_WARNING:
119119
# ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
120120

121121
Error: COMPILER_WARNING:
122-
/builddir/build/BUILD/libvirt-0.10.2/src/nodeinfo.c:254:9: warning: expression result unused [-Wunused-value]
122+
/builddir/build/BUILD/libvirt-0.10.2/src/nodeinfo.c:254:9: warning[-Wunused-value]: expression result unused
123123
# CPU_SET(sock, &sock_map);
124124
# ^~~~~~~~~~~~~~~~~~~~~~~~
125125
/builddir/build/BUILD/libvirt-0.10.2/src/nodeinfo.c:33: included_from: Included from here.
@@ -133,7 +133,7 @@ Error: COMPILER_WARNING:
133133
# ^
134134

135135
Error: COMPILER_WARNING:
136-
/builddir/build/BUILD/libvirt-0.10.2/src/nodeinfo.c:312:9: warning: expression result unused [-Wunused-value]
136+
/builddir/build/BUILD/libvirt-0.10.2/src/nodeinfo.c:312:9: warning[-Wunused-value]: expression result unused
137137
# CPU_SET(core, &core_maps[sock]);
138138
# ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
139139
/builddir/build/BUILD/libvirt-0.10.2/src/nodeinfo.c:33: included_from: Included from here.
@@ -347,12 +347,12 @@ Error: COMPILER_WARNING:
347347
/tmp/tmpjF4UBX.c:1: warning: '__dtrace' defined but not used
348348

349349
Error: COMPILER_WARNING:
350-
/tmp/tmpjF4UBX.c:1:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
350+
/tmp/tmpjF4UBX.c:1:8: warning[-Wimplicit-int]: type specifier missing, defaults to 'int'
351351
#static __dtrace () {}
352352
#~~~~~~ ^
353353

354354
Error: COMPILER_WARNING:
355-
/tmp/tmpjF4UBX.c:1:21: warning: control reaches end of non-void function [-Wreturn-type]
355+
/tmp/tmpjF4UBX.c:1:21: warning[-Wreturn-type]: control reaches end of non-void function
356356
#static __dtrace () {}
357357
# ^
358358

@@ -478,12 +478,12 @@ Error: COMPILER_WARNING:
478478
# ^ ~~~~~
479479

480480
Error: COMPILER_WARNING:
481-
/tmp/tmpObFhPl.c:1:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
481+
/tmp/tmpObFhPl.c:1:8: warning[-Wimplicit-int]: type specifier missing, defaults to 'int'
482482
#static __dtrace () {}
483483
#~~~~~~ ^
484484

485485
Error: COMPILER_WARNING:
486-
/tmp/tmpObFhPl.c:1:21: warning: control reaches end of non-void function [-Wreturn-type]
486+
/tmp/tmpObFhPl.c:1:21: warning[-Wreturn-type]: control reaches end of non-void function
487487
#static __dtrace () {}
488488
# ^
489489

@@ -493,7 +493,7 @@ Error: COMPILER_WARNING:
493493
# ^ ~~~~
494494

495495
Error: COMPILER_WARNING:
496-
/builddir/build/BUILD/libvirt-0.10.2/src/nwfilter/nwfilter_dhcpsnoop.c:900:5: warning: expression result unused [-Wunused-value]
496+
/builddir/build/BUILD/libvirt-0.10.2/src/nwfilter/nwfilter_dhcpsnoop.c:900:5: warning[-Wunused-value]: expression result unused
497497
# virAtomicIntDecAndTest(&virNWFilterSnoopState.nLeases);
498498
# ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
499499
/builddir/build/BUILD/libvirt-0.10.2/src/nwfilter/nwfilter_dhcpsnoop.c:67: included_from: Included from here.
@@ -502,7 +502,7 @@ Error: COMPILER_WARNING:
502502
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~
503503

504504
Error: COMPILER_WARNING:
505-
/builddir/build/BUILD/libvirt-0.10.2/src/nwfilter/nwfilter_dhcpsnoop.c:1182:5: warning: expression result unused [-Wunused-value]
505+
/builddir/build/BUILD/libvirt-0.10.2/src/nwfilter/nwfilter_dhcpsnoop.c:1182:5: warning[-Wunused-value]: expression result unused
506506
# virAtomicIntDecAndTest(job->qCtr);
507507
# ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
508508
/builddir/build/BUILD/libvirt-0.10.2/src/nwfilter/nwfilter_dhcpsnoop.c:67: included_from: Included from here.
@@ -511,7 +511,7 @@ Error: COMPILER_WARNING:
511511
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~
512512

513513
Error: COMPILER_WARNING:
514-
/builddir/build/BUILD/libvirt-0.10.2/src/nwfilter/nwfilter_dhcpsnoop.c:1576:5: warning: expression result unused [-Wunused-value]
514+
/builddir/build/BUILD/libvirt-0.10.2/src/nwfilter/nwfilter_dhcpsnoop.c:1576:5: warning[-Wunused-value]: expression result unused
515515
# virAtomicIntDecAndTest(&virNWFilterSnoopState.nThreads);
516516
# ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
517517
/builddir/build/BUILD/libvirt-0.10.2/src/nwfilter/nwfilter_dhcpsnoop.c:67: included_from: Included from here.
@@ -574,7 +574,7 @@ Error: COMPILER_WARNING:
574574

575575
Error: COMPILER_WARNING:
576576
/builddir/build/BUILD/libvirt-0.10.2/tools/virsh-snapshot.c:509: included_from: Included from here.
577-
/builddir/build/BUILD/libvirt-0.10.2/tools/virsh-edit.c:118:19: warning: expression result unused [-Wunused-value]
577+
/builddir/build/BUILD/libvirt-0.10.2/tools/virsh-edit.c:118:19: warning[-Wunused-value]: expression result unused
578578
# if (!msg && !(EDIT_DEFINE)) {
579579
# ^~~~~~~~~~~
580580
/builddir/build/BUILD/libvirt-0.10.2/tools/virsh-snapshot.c:504:60: note: instantiated from:

tests/csgrep/14-llvm-build-warnings-stdout.txt

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -370,8 +370,8 @@
370370
"file_name": "/builddir/build/BUILD/libvirt-0.10.2/src/util/processinfo.c",
371371
"line": 64,
372372
"column": 13,
373-
"event": "warning",
374-
"message": "expression result unused [-Wunused-value]",
373+
"event": "warning[-Wunused-value]",
374+
"message": "expression result unused",
375375
"verbosity_level": "0"
376376
},
377377
{
@@ -667,8 +667,8 @@
667667
"file_name": "/builddir/build/BUILD/libvirt-0.10.2/src/nodeinfo.c",
668668
"line": 254,
669669
"column": 9,
670-
"event": "warning",
671-
"message": "expression result unused [-Wunused-value]",
670+
"event": "warning[-Wunused-value]",
671+
"message": "expression result unused",
672672
"verbosity_level": "0"
673673
},
674674
{
@@ -761,8 +761,8 @@
761761
"file_name": "/builddir/build/BUILD/libvirt-0.10.2/src/nodeinfo.c",
762762
"line": 312,
763763
"column": 9,
764-
"event": "warning",
765-
"message": "expression result unused [-Wunused-value]",
764+
"event": "warning[-Wunused-value]",
765+
"message": "expression result unused",
766766
"verbosity_level": "0"
767767
},
768768
{
@@ -2169,8 +2169,8 @@
21692169
"file_name": "/tmp/tmpjF4UBX.c",
21702170
"line": 1,
21712171
"column": 8,
2172-
"event": "warning",
2173-
"message": "type specifier missing, defaults to 'int' [-Wimplicit-int]",
2172+
"event": "warning[-Wimplicit-int]",
2173+
"message": "type specifier missing, defaults to 'int'",
21742174
"verbosity_level": "0"
21752175
},
21762176
{
@@ -2198,8 +2198,8 @@
21982198
"file_name": "/tmp/tmpjF4UBX.c",
21992199
"line": 1,
22002200
"column": 21,
2201-
"event": "warning",
2202-
"message": "control reaches end of non-void function [-Wreturn-type]",
2201+
"event": "warning[-Wreturn-type]",
2202+
"message": "control reaches end of non-void function",
22032203
"verbosity_level": "0"
22042204
},
22052205
{
@@ -2922,8 +2922,8 @@
29222922
"file_name": "/tmp/tmpObFhPl.c",
29232923
"line": 1,
29242924
"column": 8,
2925-
"event": "warning",
2926-
"message": "type specifier missing, defaults to 'int' [-Wimplicit-int]",
2925+
"event": "warning[-Wimplicit-int]",
2926+
"message": "type specifier missing, defaults to 'int'",
29272927
"verbosity_level": "0"
29282928
},
29292929
{
@@ -2951,8 +2951,8 @@
29512951
"file_name": "/tmp/tmpObFhPl.c",
29522952
"line": 1,
29532953
"column": 21,
2954-
"event": "warning",
2955-
"message": "control reaches end of non-void function [-Wreturn-type]",
2954+
"event": "warning[-Wreturn-type]",
2955+
"message": "control reaches end of non-void function",
29562956
"verbosity_level": "0"
29572957
},
29582958
{
@@ -3009,8 +3009,8 @@
30093009
"file_name": "/builddir/build/BUILD/libvirt-0.10.2/src/nwfilter/nwfilter_dhcpsnoop.c",
30103010
"line": 900,
30113011
"column": 5,
3012-
"event": "warning",
3013-
"message": "expression result unused [-Wunused-value]",
3012+
"event": "warning[-Wunused-value]",
3013+
"message": "expression result unused",
30143014
"verbosity_level": "0"
30153015
},
30163016
{
@@ -3067,8 +3067,8 @@
30673067
"file_name": "/builddir/build/BUILD/libvirt-0.10.2/src/nwfilter/nwfilter_dhcpsnoop.c",
30683068
"line": 1182,
30693069
"column": 5,
3070-
"event": "warning",
3071-
"message": "expression result unused [-Wunused-value]",
3070+
"event": "warning[-Wunused-value]",
3071+
"message": "expression result unused",
30723072
"verbosity_level": "0"
30733073
},
30743074
{
@@ -3125,8 +3125,8 @@
31253125
"file_name": "/builddir/build/BUILD/libvirt-0.10.2/src/nwfilter/nwfilter_dhcpsnoop.c",
31263126
"line": 1576,
31273127
"column": 5,
3128-
"event": "warning",
3129-
"message": "expression result unused [-Wunused-value]",
3128+
"event": "warning[-Wunused-value]",
3129+
"message": "expression result unused",
31303130
"verbosity_level": "0"
31313131
},
31323132
{
@@ -3502,8 +3502,8 @@
35023502
"file_name": "/builddir/build/BUILD/libvirt-0.10.2/tools/virsh-edit.c",
35033503
"line": 118,
35043504
"column": 19,
3505-
"event": "warning",
3506-
"message": "expression result unused [-Wunused-value]",
3505+
"event": "warning[-Wunused-value]",
3506+
"message": "expression result unused",
35073507
"verbosity_level": "0"
35083508
},
35093509
{

0 commit comments

Comments
 (0)