Module Name:    src
Committed By:   rillig
Date:           Sat Sep 28 15:51:40 UTC 2024

Modified Files:
        src/tests/usr.bin/xlint/lint1: decl_arg.c gcc_attribute_var.c msg_192.c
            msg_231.c
        src/usr.bin/xlint/lint1: cgram.y debug.c decl.c externs1.h lint1.h

Log Message:
lint: handle __attribute__((__unused__)) for functions and variables

Previously, lint ignored the '__unused' marker, requiring its own /*
ARGSUSED */ marker instead.

Previously, attributes were interpreted as soon as the closing
parenthesis was parsed.  For a function definition such as '__unused
static void f(void) {}', this was too early, as the attribute was not
connected to the function, as the function was not parsed yet.

Now, the 'unused' attribute is passed around by the parser, until it is
merged into the declarator where it belongs.  Due to an inaccuracy in
the grammar, the 'used' attribute has to be passed through a
parameter_list, even though a parameter list is not related to
attributes.  Still, it's better than before.


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/tests/usr.bin/xlint/lint1/decl_arg.c
cvs rdiff -u -r1.12 -r1.13 src/tests/usr.bin/xlint/lint1/gcc_attribute_var.c
cvs rdiff -u -r1.11 -r1.12 src/tests/usr.bin/xlint/lint1/msg_192.c
cvs rdiff -u -r1.8 -r1.9 src/tests/usr.bin/xlint/lint1/msg_231.c
cvs rdiff -u -r1.509 -r1.510 src/usr.bin/xlint/lint1/cgram.y
cvs rdiff -u -r1.80 -r1.81 src/usr.bin/xlint/lint1/debug.c
cvs rdiff -u -r1.404 -r1.405 src/usr.bin/xlint/lint1/decl.c
cvs rdiff -u -r1.232 -r1.233 src/usr.bin/xlint/lint1/externs1.h
cvs rdiff -u -r1.227 -r1.228 src/usr.bin/xlint/lint1/lint1.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Reply via email to