[Bug analyzer/93773] New: Analyzer probably fails to recognize end of C macros in some cases
asolokha at gmx dot com
gcc-bugzilla@gcc.gnu.org
Mon Feb 17 04:16:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93773
Bug ID: 93773
Summary: Analyzer probably fails to recognize end of C macros
in some cases
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: analyzer
Assignee: dmalcolm at gcc dot gnu.org
Reporter: asolokha at gmx dot com
Target Milestone: ---
Created attachment 47857
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47857&action=edit
Compiler output
I failed to come up w/ a reduced testcase and can only provide instructions to
reproduce the issue, so this PR is technically invalid. The issue, however, is
real. It can be seen when compiling gawk and perl, and probably any complex
bison-generated parser.
When emitting "note: in expansion of macro 'YYSTACK_BYTES'" (five times in the
attached output), analyzer quotes the code from the macro expansion point all
the way down to the point where it is used in a file, potentially printing
hundreds or thousands of unrelated lines, which is clearly wrong. It probably
fails to discern end of the macro.
The attached output was produced when building gawk 5.0.1 w/ -O1 -fanalyzer,
particularly when compiling awkgram.c:
CC=gcc-10.0.1 CFLAGS="-O1 -fanalyzer" ./configure
make -k
or, specifically,
gcc-10.0.1 -DHAVE_CONFIG_H -DGAWK -I"./support" -I. -O1 -fanalyzer -DNDEBUG -c
-o awkgram.o awkgram.c
More information about the Gcc-bugs
mailing list