Skip to content

Commit 48a6676

Browse files
committed
gcc-parser: use more specific regex for file location
... to avoid unnecessary collisions with code snippets
1 parent 1755cbd commit 48a6676

File tree

5 files changed

+466
-1
lines changed

5 files changed

+466
-1
lines changed

gcc-parser.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class AbstractTokenFilter: public ITokenizer {
5959
ITokenizer *slave_;
6060
};
6161

62-
#define RE_LOCATION "([^:]+)(?::([0-9]+))?(?::([0-9]+))?"
62+
#define RE_LOCATION "([^ :\"][^:\"]+)(?::([0-9]+))?(?::([0-9]+))?"
6363
#define RE_TOOL_SUFFIX "(?: <--\\[[^\\]]+\\])?$"
6464
#define RE_EVENT_GCC "(?:(?:(?:fatal|internal) )?[a-z]+)"
6565
#define RE_EVENT_PROSPECTOR "(?:[A-Z]+[0-9]+\\[[a-z0-9]+\\])"

tests/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ test_csgrep(csgrep "47-csparser-new-key-evts" )
167167
test_csgrep(csgrep "48-csparser-missing-break-key-evt")
168168
test_csgrep(csgrep "49-csparser-findbugs-jsr166" )
169169
test_csgrep(csgrep "50-gcc-parser-gcc-9.2.1" )
170+
test_csgrep(csgrep "51-gcc-parser-systemd" )
170171
test_csparser(csparser-5.8 00)
171172
test_csparser(csparser-5.8 01)
172173
test_csparser(csparser-5.8 02)

tests/csgrep/51-gcc-parser-systemd-args.txt

Whitespace-only changes.
Lines changed: 230 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,230 @@
1+
/builddir/build/BUILD/systemd-239/src/machine/machine-dbus.c:1173:17: warning: Value stored to 'containerfd' is never read <--[clang]
2+
containerfd = safe_close(containerfd);
3+
^ ~~~~~~~~~~~~~~~~~~~~~~~
4+
/builddir/build/BUILD/systemd-239/src/machine/machine-dbus.c:1173:17: note: Value stored to 'containerfd' is never read <--[clang]
5+
containerfd = safe_close(containerfd);
6+
^ ~~~~~~~~~~~~~~~~~~~~~~~
7+
/builddir/build/BUILD/systemd-239/src/machine/machine-dbus.c:1261:25: warning: Value stored to 'dfd' is never read <--[clang]
8+
dfd = safe_close(dfd);
9+
^ ~~~~~~~~~~~~~~~
10+
/builddir/build/BUILD/systemd-239/src/machine/machine-dbus.c:1261:25: note: Value stored to 'dfd' is never read <--[clang]
11+
dfd = safe_close(dfd);
12+
^ ~~~~~~~~~~~~~~~
13+
6 warnings generated.
14+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:807:39: warning: The left operand of '&' is a garbage value <--[clang]
15+
is_data_track = (p[1] & 0x04) != 0;
16+
^
17+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:859:13: note: Assuming 'udev' is not equal to NULL <--[clang]
18+
if (udev == NULL)
19+
^~~~~~~~~~~~
20+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:859:9: note: Taking false branch <--[clang]
21+
if (udev == NULL)
22+
^
23+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:862:9: note: Loop condition is true. Entering loop body <--[clang]
24+
for (;;) {
25+
^
26+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:866:21: note: Assuming the condition is true <--[clang]
27+
if (option == -1)
28+
^~~~~~~~~~~~
29+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:866:17: note: Taking true branch <--[clang]
30+
if (option == -1)
31+
^
32+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:867:25: note: Execution continues on line 898 <--[clang]
33+
break;
34+
^
35+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:899:13: note: Assuming 'node' is non-null <--[clang]
36+
if (!node) {
37+
^~~~~
38+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:899:9: note: Taking false branch <--[clang]
39+
if (!node) {
40+
^
41+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:907:9: note: Loop condition is true. Entering loop body <--[clang]
42+
for (cnt = 20; cnt > 0; cnt--) {
43+
^
44+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:910:64: note: '?' condition is false <--[clang]
45+
fd = open(node, O_RDONLY|O_NONBLOCK|O_CLOEXEC|(is_mounted(node) ? 0 : O_EXCL));
46+
^
47+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:911:21: note: Assuming 'fd' is >= 0 <--[clang]
48+
if (fd >= 0 || errno != EBUSY)
49+
^~~~~~~
50+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:911:29: note: Left side of '||' is true <--[clang]
51+
if (fd >= 0 || errno != EBUSY)
52+
^
53+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:912:25: note: Execution continues on line 917 <--[clang]
54+
break;
55+
^
56+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:917:13: note: 'fd' is >= 0 <--[clang]
57+
if (fd < 0) {
58+
^~~~~~
59+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:917:9: note: Taking false branch <--[clang]
60+
if (fd < 0) {
61+
^
62+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:923:9: note: Assuming the condition is false <--[clang]
63+
log_debug("probing: '%s'", node);
64+
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
65+
/builddir/build/BUILD/systemd-239/src/basic/log.h:218:28: note: expanded from macro 'log_debug' <--[clang]
66+
#define log_debug(...) log_full(LOG_DEBUG, __VA_ARGS__)
67+
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68+
/builddir/build/BUILD/systemd-239/src/basic/log.h:213:30: note: expanded from macro 'log_full' <--[clang]
69+
#define log_full(level, ...) log_full_errno((level), 0, __VA_ARGS__)
70+
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71+
/builddir/build/BUILD/systemd-239/src/basic/log.h:211:9: note: expanded from macro 'log_full_errno' <--[clang]
72+
log_full_errno_realm(LOG_REALM, (level), (error), __VA_ARGS__)
73+
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
74+
/builddir/build/BUILD/systemd-239/src/basic/log.h:204:18: note: expanded from macro 'log_full_errno_realm' <--[clang]
75+
(log_get_max_level_realm(_realm) >= LOG_PRI(_level)) \
76+
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
77+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:923:9: note: '?' condition is false <--[clang]
78+
/builddir/build/BUILD/systemd-239/src/basic/log.h:218:28: note: expanded from macro 'log_debug' <--[clang]
79+
#define log_debug(...) log_full(LOG_DEBUG, __VA_ARGS__)
80+
^
81+
/builddir/build/BUILD/systemd-239/src/basic/log.h:213:30: note: expanded from macro 'log_full' <--[clang]
82+
#define log_full(level, ...) log_full_errno((level), 0, __VA_ARGS__)
83+
^
84+
/builddir/build/BUILD/systemd-239/src/basic/log.h:211:9: note: expanded from macro 'log_full_errno' <--[clang]
85+
log_full_errno_realm(LOG_REALM, (level), (error), __VA_ARGS__)
86+
^
87+
/builddir/build/BUILD/systemd-239/src/basic/log.h:204:17: note: expanded from macro 'log_full_errno_realm' <--[clang]
88+
(log_get_max_level_realm(_realm) >= LOG_PRI(_level)) \
89+
^
90+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:926:9: note: Taking false branch <--[clang]
91+
if (cd_capability_compat(udev, fd) < 0) {
92+
^
93+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:936:9: note: Taking false branch <--[clang]
94+
if (cd_inquiry(udev, fd) < 0)
95+
^
96+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:940:9: note: Taking false branch <--[clang]
97+
if (cd_profiles(udev, fd) != 0)
98+
^
99+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:946:9: note: Calling 'cd_media_toc' <--[clang]
100+
cd_media_toc(udev, fd);
101+
^~~~~~~~~~~~~~~~~~~~~~
102+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:770:14: note: 'err' is equal to 0 <--[clang]
103+
if ((err != 0)) {
104+
^~~~~~~~
105+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:770:9: note: Taking false branch <--[clang]
106+
if ((err != 0)) {
107+
^
108+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:776:9: note: Assuming the condition is false <--[clang]
109+
log_debug("READ TOC: len: %d, start track: %d, end track: %d", len, header[2], header[3]);
110+
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
111+
/builddir/build/BUILD/systemd-239/src/basic/log.h:218:28: note: expanded from macro 'log_debug' <--[clang]
112+
#define log_debug(...) log_full(LOG_DEBUG, __VA_ARGS__)
113+
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
114+
/builddir/build/BUILD/systemd-239/src/basic/log.h:213:30: note: expanded from macro 'log_full' <--[clang]
115+
#define log_full(level, ...) log_full_errno((level), 0, __VA_ARGS__)
116+
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
117+
/builddir/build/BUILD/systemd-239/src/basic/log.h:211:9: note: expanded from macro 'log_full_errno' <--[clang]
118+
log_full_errno_realm(LOG_REALM, (level), (error), __VA_ARGS__)
119+
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
120+
/builddir/build/BUILD/systemd-239/src/basic/log.h:204:18: note: expanded from macro 'log_full_errno_realm' <--[clang]
121+
(log_get_max_level_realm(_realm) >= LOG_PRI(_level)) \
122+
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
123+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:776:9: note: '?' condition is false <--[clang]
124+
/builddir/build/BUILD/systemd-239/src/basic/log.h:218:28: note: expanded from macro 'log_debug' <--[clang]
125+
#define log_debug(...) log_full(LOG_DEBUG, __VA_ARGS__)
126+
^
127+
/builddir/build/BUILD/systemd-239/src/basic/log.h:213:30: note: expanded from macro 'log_full' <--[clang]
128+
#define log_full(level, ...) log_full_errno((level), 0, __VA_ARGS__)
129+
^
130+
/builddir/build/BUILD/systemd-239/src/basic/log.h:211:9: note: expanded from macro 'log_full_errno' <--[clang]
131+
log_full_errno_realm(LOG_REALM, (level), (error), __VA_ARGS__)
132+
^
133+
/builddir/build/BUILD/systemd-239/src/basic/log.h:204:17: note: expanded from macro 'log_full_errno_realm' <--[clang]
134+
(log_get_max_level_realm(_realm) >= LOG_PRI(_level)) \
135+
^
136+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:777:13: note: Assuming the condition is false <--[clang]
137+
if (len > sizeof(toc))
138+
^~~~~~~~~~~~~~~~~
139+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:777:9: note: Taking false branch <--[clang]
140+
if (len > sizeof(toc))
141+
^
142+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:779:13: note: Assuming 'len' is >= 2 <--[clang]
143+
if (len < 2)
144+
^~~~~~~
145+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:779:9: note: Taking false branch <--[clang]
146+
if (len < 2)
147+
^
148+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:785:13: note: Assuming 'len' is >= 8 <--[clang]
149+
if (len < 8)
150+
^~~~~~~
151+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:785:9: note: Taking false branch <--[clang]
152+
if (len < 8)
153+
^
154+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:794:15: note: Calling 'scsi_cmd_run' <--[clang]
155+
err = scsi_cmd_run(udev, &sc, fd, toc, len);
156+
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
157+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:156:13: note: Assuming 'bufsize' is <= 0 <--[clang]
158+
if (bufsize > 0) {
159+
^~~~~~~~~~~
160+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:156:9: note: Taking false branch <--[clang]
161+
if (bufsize > 0) {
162+
^
163+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:163:13: note: Assuming the condition is false <--[clang]
164+
if (ioctl(fd, SG_IO, &cmd->sg_io))
165+
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
166+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:163:9: note: Taking false branch <--[clang]
167+
if (ioctl(fd, SG_IO, &cmd->sg_io))
168+
^
169+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:166:13: note: Assuming the condition is false <--[clang]
170+
if ((cmd->sg_io.info & SG_INFO_OK_MASK) != SG_INFO_OK) {
171+
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
172+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:166:9: note: Taking false branch <--[clang]
173+
if ((cmd->sg_io.info & SG_INFO_OK_MASK) != SG_INFO_OK) {
174+
^
175+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:794:15: note: Returning from 'scsi_cmd_run' <--[clang]
176+
err = scsi_cmd_run(udev, &sc, fd, toc, len);
177+
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
178+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:795:14: note: 'err' is equal to 0 <--[clang]
179+
if ((err != 0)) {
180+
^~~~~~~~
181+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:795:9: note: Taking false branch <--[clang]
182+
if ((err != 0)) {
183+
^
184+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:803:32: note: Left side of '&&' is true <--[clang]
185+
for (p = toc+4, i = 4; i < len-8 && num_tracks > 0; i += 8, p += 8, --num_tracks) {
186+
^
187+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:803:45: note: Assuming 'num_tracks' is > 0 <--[clang]
188+
for (p = toc+4, i = 4; i < len-8 && num_tracks > 0; i += 8, p += 8, --num_tracks) {
189+
^~~~~~~~~~~~~~
190+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:803:9: note: Loop condition is true. Entering loop body <--[clang]
191+
for (p = toc+4, i = 4; i < len-8 && num_tracks > 0; i += 8, p += 8, --num_tracks) {
192+
^
193+
/builddir/build/BUILD/systemd-239/src/udev/cdrom_id/cdrom_id.c:807:39: note: The left operand of '&' is a garbage value <--[clang]
194+
is_data_track = (p[1] & 0x04) != 0;
195+
~~~~ ^
196+
1 warning generated.
197+
/builddir/build/BUILD/systemd-239/src/udev/mtd_probe/probe_smartmedia.c:53:17: warning: Potential leak of memory pointed to by 'cis_buffer' <--[clang]
198+
log_debug("Not marked MTD_NANDFLASH.");
199+
^
200+
/builddir/build/BUILD/systemd-239/src/basic/log.h:218:37: note: expanded from macro 'log_debug' <--[clang]
201+
#define log_debug(...) log_full(LOG_DEBUG, __VA_ARGS__)
202+
^
203+
/usr/include/sys/syslog.h:58:19: note: expanded from macro 'LOG_DEBUG' <--[clang]
204+
#define LOG_DEBUG 7 /* debug-level messages */
205+
^
206+
/builddir/build/BUILD/systemd-239/src/udev/mtd_probe/probe_smartmedia.c:48:22: note: Memory is allocated <--[clang]
207+
cis_buffer = malloc(SM_SECTOR_SIZE);
208+
^~~~~~~~~~~~~~~~~~~~~~
209+
/builddir/build/BUILD/systemd-239/src/udev/mtd_probe/probe_smartmedia.c:49:13: note: Assuming 'cis_buffer' is non-null <--[clang]
210+
if (!cis_buffer)
211+
^~~~~~~~~~~
212+
/builddir/build/BUILD/systemd-239/src/udev/mtd_probe/probe_smartmedia.c:49:9: note: Taking false branch <--[clang]
213+
if (!cis_buffer)
214+
^
215+
/builddir/build/BUILD/systemd-239/src/udev/mtd_probe/probe_smartmedia.c:52:13: note: Assuming field 'type' is not equal to MTD_NANDFLASH <--[clang]
216+
if (info->type != MTD_NANDFLASH) {
217+
^~~~~~~~~~~~~~~~~~~~~~~~~~~
218+
/builddir/build/BUILD/systemd-239/src/udev/mtd_probe/probe_smartmedia.c:52:9: note: Taking true branch <--[clang]
219+
if (info->type != MTD_NANDFLASH) {
220+
^
221+
/builddir/build/BUILD/systemd-239/src/udev/mtd_probe/probe_smartmedia.c:53:17: note: Potential leak of memory pointed to by 'cis_buffer' <--[clang]
222+
log_debug("Not marked MTD_NANDFLASH.");
223+
^
224+
/builddir/build/BUILD/systemd-239/src/basic/log.h:218:37: note: expanded from macro 'log_debug' <--[clang]
225+
#define log_debug(...) log_full(LOG_DEBUG, __VA_ARGS__)
226+
^
227+
/usr/include/sys/syslog.h:58:19: note: expanded from macro 'LOG_DEBUG' <--[clang]
228+
#define LOG_DEBUG 7 /* debug-level messages */
229+
^
230+
1 warning generated.

0 commit comments

Comments
 (0)