#
1.11 |
|
15-Jul-2023 |
rillig |
lint: each member declarator may have attributes, not only the last one
|
#
1.10 |
|
15-Jul-2023 |
rillig |
tests/lint: test GCC attributes in member declarations
|
#
1.9 |
|
07-Jul-2023 |
rillig |
lint: only skip 'unused' warnings after errors, not other warnings
Previously, in -w mode, any warning suppressed further 'unused' warnings, even though there was no need to do that. This can be seen in the test gcc_attribute_var.c, where only the last unused variable from a function was marked as unused, the others slipped through.
Fixed by counting the errors and the warnings separately and only combining them if actually desired.
|
#
1.8 |
|
28-Mar-2023 |
rillig |
lint: warn about extern declarations outside headers
https://mail-index.netbsd.org/tech-userlevel/2023/03/15/msg013727.html
|
#
1.7 |
|
05-Feb-2023 |
rillig |
tests/lint: clean up
The .exp files are no longer kept under version control, so there's no reason anymore to forcefully trigger a warning or an error.
|
Revision tags: netbsd-10-base
|
#
1.6 |
|
25-Aug-2022 |
rillig |
lint: remove explicit list of known GCC attributes
Most GCC attributes consist of a single identifier. Up to now, it was necessary to list each of these identifiers in the grammar, even those that only apply to a single target architecture.
Instead, parse the general form of attributes, matching the few attributes that lint handles by name instead. While here, rename the grammar rules to use the GCC terms.
To avoid conflicts between the global function 'printf' and the GCC attribute of the same name, do not add GCC attributes to the symbol table, and don't make these symbols 'extern' either.
ok christos@.
|
#
1.5 |
|
11-Aug-2021 |
rillig |
lint: allow GCC __attribute__ after array brackets
GCC accepts this, so should lint. Seen in pam_lastlog.c:115.
|
#
1.4 |
|
11-Aug-2021 |
rillig |
tests/lint: demonstrate wrong 'syntax error' for unused argument
Seen in pam_chroot.c:60.
|
#
1.3 |
|
11-Jul-2021 |
rillig |
lint: fix bug when parsing unused variable (since 2021-07-10)
Partially revert to cgram.y 1.248 from 2021-06-29.
This fixes the parse error for variables whose declaration starts with __attribute__((unused)). In the many refactorings of the last days this bug has slipped in, and since there were several refactorings in that area, there may be have been further bugs that are not caught by the current test suite. Revert for now and maybe apply them later again when there are more tests.
Things kept from the current version are:
The names of most of the rules, as they correspond more closely to C99 and do not affect the behavior in any way.
In type_direct_decl, the replacement of type_attribute_list with type_attribute since that nonterminal is already part of a repetition (saves 4 conflicts).
In block_item, the order of the rules corresponds to C99. This has no influence on the generated parser, except for the rule numbers, which are informative.
The merge of the duplicate code for struct_tag, enum_tag and enum_constant, as they all contained exactly the same code.
|
#
1.2 |
|
11-Jul-2021 |
rillig |
tests/lint: analyze yesterday's bug for parsing declarations
|
#
1.1 |
|
06-Jul-2021 |
rillig |
tests/lint: add tests for GCC __attribute__
Before fixing the wrong handling of __attribute__ that is demonstrated at the end of gcc_attribute.c, ensure that the attribute handling works in the most basic cases.
Lint currently accepts __attribute__ in more places than it should. This leads to some ambiguities in the grammar.
|
#
1.9 |
|
07-Jul-2023 |
rillig |
lint: only skip 'unused' warnings after errors, not other warnings
Previously, in -w mode, any warning suppressed further 'unused' warnings, even though there was no need to do that. This can be seen in the test gcc_attribute_var.c, where only the last unused variable from a function was marked as unused, the others slipped through.
Fixed by counting the errors and the warnings separately and only combining them if actually desired.
|
#
1.8 |
|
28-Mar-2023 |
rillig |
lint: warn about extern declarations outside headers
https://mail-index.netbsd.org/tech-userlevel/2023/03/15/msg013727.html
|
#
1.7 |
|
05-Feb-2023 |
rillig |
tests/lint: clean up
The .exp files are no longer kept under version control, so there's no reason anymore to forcefully trigger a warning or an error.
|
Revision tags: netbsd-10-base
|
#
1.6 |
|
25-Aug-2022 |
rillig |
lint: remove explicit list of known GCC attributes
Most GCC attributes consist of a single identifier. Up to now, it was necessary to list each of these identifiers in the grammar, even those that only apply to a single target architecture.
Instead, parse the general form of attributes, matching the few attributes that lint handles by name instead. While here, rename the grammar rules to use the GCC terms.
To avoid conflicts between the global function 'printf' and the GCC attribute of the same name, do not add GCC attributes to the symbol table, and don't make these symbols 'extern' either.
ok christos@.
|
#
1.5 |
|
11-Aug-2021 |
rillig |
lint: allow GCC __attribute__ after array brackets
GCC accepts this, so should lint. Seen in pam_lastlog.c:115.
|
#
1.4 |
|
11-Aug-2021 |
rillig |
tests/lint: demonstrate wrong 'syntax error' for unused argument
Seen in pam_chroot.c:60.
|
#
1.3 |
|
11-Jul-2021 |
rillig |
lint: fix bug when parsing unused variable (since 2021-07-10)
Partially revert to cgram.y 1.248 from 2021-06-29.
This fixes the parse error for variables whose declaration starts with __attribute__((unused)). In the many refactorings of the last days this bug has slipped in, and since there were several refactorings in that area, there may be have been further bugs that are not caught by the current test suite. Revert for now and maybe apply them later again when there are more tests.
Things kept from the current version are:
The names of most of the rules, as they correspond more closely to C99 and do not affect the behavior in any way.
In type_direct_decl, the replacement of type_attribute_list with type_attribute since that nonterminal is already part of a repetition (saves 4 conflicts).
In block_item, the order of the rules corresponds to C99. This has no influence on the generated parser, except for the rule numbers, which are informative.
The merge of the duplicate code for struct_tag, enum_tag and enum_constant, as they all contained exactly the same code.
|
#
1.2 |
|
11-Jul-2021 |
rillig |
tests/lint: analyze yesterday's bug for parsing declarations
|
#
1.1 |
|
06-Jul-2021 |
rillig |
tests/lint: add tests for GCC __attribute__
Before fixing the wrong handling of __attribute__ that is demonstrated at the end of gcc_attribute.c, ensure that the attribute handling works in the most basic cases.
Lint currently accepts __attribute__ in more places than it should. This leads to some ambiguities in the grammar.
|
#
1.8 |
|
28-Mar-2023 |
rillig |
lint: warn about extern declarations outside headers
https://mail-index.netbsd.org/tech-userlevel/2023/03/15/msg013727.html
|
#
1.7 |
|
05-Feb-2023 |
rillig |
tests/lint: clean up
The .exp files are no longer kept under version control, so there's no reason anymore to forcefully trigger a warning or an error.
|
Revision tags: netbsd-10-base
|
#
1.6 |
|
25-Aug-2022 |
rillig |
lint: remove explicit list of known GCC attributes
Most GCC attributes consist of a single identifier. Up to now, it was necessary to list each of these identifiers in the grammar, even those that only apply to a single target architecture.
Instead, parse the general form of attributes, matching the few attributes that lint handles by name instead. While here, rename the grammar rules to use the GCC terms.
To avoid conflicts between the global function 'printf' and the GCC attribute of the same name, do not add GCC attributes to the symbol table, and don't make these symbols 'extern' either.
ok christos@.
|
#
1.5 |
|
11-Aug-2021 |
rillig |
lint: allow GCC __attribute__ after array brackets
GCC accepts this, so should lint. Seen in pam_lastlog.c:115.
|
#
1.4 |
|
11-Aug-2021 |
rillig |
tests/lint: demonstrate wrong 'syntax error' for unused argument
Seen in pam_chroot.c:60.
|
#
1.3 |
|
11-Jul-2021 |
rillig |
lint: fix bug when parsing unused variable (since 2021-07-10)
Partially revert to cgram.y 1.248 from 2021-06-29.
This fixes the parse error for variables whose declaration starts with __attribute__((unused)). In the many refactorings of the last days this bug has slipped in, and since there were several refactorings in that area, there may be have been further bugs that are not caught by the current test suite. Revert for now and maybe apply them later again when there are more tests.
Things kept from the current version are:
The names of most of the rules, as they correspond more closely to C99 and do not affect the behavior in any way.
In type_direct_decl, the replacement of type_attribute_list with type_attribute since that nonterminal is already part of a repetition (saves 4 conflicts).
In block_item, the order of the rules corresponds to C99. This has no influence on the generated parser, except for the rule numbers, which are informative.
The merge of the duplicate code for struct_tag, enum_tag and enum_constant, as they all contained exactly the same code.
|
#
1.2 |
|
11-Jul-2021 |
rillig |
tests/lint: analyze yesterday's bug for parsing declarations
|
#
1.1 |
|
06-Jul-2021 |
rillig |
tests/lint: add tests for GCC __attribute__
Before fixing the wrong handling of __attribute__ that is demonstrated at the end of gcc_attribute.c, ensure that the attribute handling works in the most basic cases.
Lint currently accepts __attribute__ in more places than it should. This leads to some ambiguities in the grammar.
|
#
1.7 |
|
05-Feb-2023 |
rillig |
tests/lint: clean up
The .exp files are no longer kept under version control, so there's no reason anymore to forcefully trigger a warning or an error.
|
Revision tags: netbsd-10-base
|
#
1.6 |
|
25-Aug-2022 |
rillig |
lint: remove explicit list of known GCC attributes
Most GCC attributes consist of a single identifier. Up to now, it was necessary to list each of these identifiers in the grammar, even those that only apply to a single target architecture.
Instead, parse the general form of attributes, matching the few attributes that lint handles by name instead. While here, rename the grammar rules to use the GCC terms.
To avoid conflicts between the global function 'printf' and the GCC attribute of the same name, do not add GCC attributes to the symbol table, and don't make these symbols 'extern' either.
ok christos@.
|
#
1.5 |
|
11-Aug-2021 |
rillig |
lint: allow GCC __attribute__ after array brackets
GCC accepts this, so should lint. Seen in pam_lastlog.c:115.
|
#
1.4 |
|
11-Aug-2021 |
rillig |
tests/lint: demonstrate wrong 'syntax error' for unused argument
Seen in pam_chroot.c:60.
|
#
1.3 |
|
11-Jul-2021 |
rillig |
lint: fix bug when parsing unused variable (since 2021-07-10)
Partially revert to cgram.y 1.248 from 2021-06-29.
This fixes the parse error for variables whose declaration starts with __attribute__((unused)). In the many refactorings of the last days this bug has slipped in, and since there were several refactorings in that area, there may be have been further bugs that are not caught by the current test suite. Revert for now and maybe apply them later again when there are more tests.
Things kept from the current version are:
The names of most of the rules, as they correspond more closely to C99 and do not affect the behavior in any way.
In type_direct_decl, the replacement of type_attribute_list with type_attribute since that nonterminal is already part of a repetition (saves 4 conflicts).
In block_item, the order of the rules corresponds to C99. This has no influence on the generated parser, except for the rule numbers, which are informative.
The merge of the duplicate code for struct_tag, enum_tag and enum_constant, as they all contained exactly the same code.
|
#
1.2 |
|
11-Jul-2021 |
rillig |
tests/lint: analyze yesterday's bug for parsing declarations
|
#
1.1 |
|
06-Jul-2021 |
rillig |
tests/lint: add tests for GCC __attribute__
Before fixing the wrong handling of __attribute__ that is demonstrated at the end of gcc_attribute.c, ensure that the attribute handling works in the most basic cases.
Lint currently accepts __attribute__ in more places than it should. This leads to some ambiguities in the grammar.
|
#
1.6 |
|
25-Aug-2022 |
rillig |
lint: remove explicit list of known GCC attributes
Most GCC attributes consist of a single identifier. Up to now, it was necessary to list each of these identifiers in the grammar, even those that only apply to a single target architecture.
Instead, parse the general form of attributes, matching the few attributes that lint handles by name instead. While here, rename the grammar rules to use the GCC terms.
To avoid conflicts between the global function 'printf' and the GCC attribute of the same name, do not add GCC attributes to the symbol table, and don't make these symbols 'extern' either.
ok christos@.
|
#
1.5 |
|
11-Aug-2021 |
rillig |
lint: allow GCC __attribute__ after array brackets
GCC accepts this, so should lint. Seen in pam_lastlog.c:115.
|
#
1.4 |
|
11-Aug-2021 |
rillig |
tests/lint: demonstrate wrong 'syntax error' for unused argument
Seen in pam_chroot.c:60.
|
#
1.3 |
|
11-Jul-2021 |
rillig |
lint: fix bug when parsing unused variable (since 2021-07-10)
Partially revert to cgram.y 1.248 from 2021-06-29.
This fixes the parse error for variables whose declaration starts with __attribute__((unused)). In the many refactorings of the last days this bug has slipped in, and since there were several refactorings in that area, there may be have been further bugs that are not caught by the current test suite. Revert for now and maybe apply them later again when there are more tests.
Things kept from the current version are:
The names of most of the rules, as they correspond more closely to C99 and do not affect the behavior in any way.
In type_direct_decl, the replacement of type_attribute_list with type_attribute since that nonterminal is already part of a repetition (saves 4 conflicts).
In block_item, the order of the rules corresponds to C99. This has no influence on the generated parser, except for the rule numbers, which are informative.
The merge of the duplicate code for struct_tag, enum_tag and enum_constant, as they all contained exactly the same code.
|
#
1.2 |
|
11-Jul-2021 |
rillig |
tests/lint: analyze yesterday's bug for parsing declarations
|
#
1.1 |
|
06-Jul-2021 |
rillig |
tests/lint: add tests for GCC __attribute__
Before fixing the wrong handling of __attribute__ that is demonstrated at the end of gcc_attribute.c, ensure that the attribute handling works in the most basic cases.
Lint currently accepts __attribute__ in more places than it should. This leads to some ambiguities in the grammar.
|
#
1.5 |
|
11-Aug-2021 |
rillig |
lint: allow GCC __attribute__ after array brackets
GCC accepts this, so should lint. Seen in pam_lastlog.c:115.
|
#
1.4 |
|
11-Aug-2021 |
rillig |
tests/lint: demonstrate wrong 'syntax error' for unused argument
Seen in pam_chroot.c:60.
|
#
1.3 |
|
11-Jul-2021 |
rillig |
lint: fix bug when parsing unused variable (since 2021-07-10)
Partially revert to cgram.y 1.248 from 2021-06-29.
This fixes the parse error for variables whose declaration starts with __attribute__((unused)). In the many refactorings of the last days this bug has slipped in, and since there were several refactorings in that area, there may be have been further bugs that are not caught by the current test suite. Revert for now and maybe apply them later again when there are more tests.
Things kept from the current version are:
The names of most of the rules, as they correspond more closely to C99 and do not affect the behavior in any way.
In type_direct_decl, the replacement of type_attribute_list with type_attribute since that nonterminal is already part of a repetition (saves 4 conflicts).
In block_item, the order of the rules corresponds to C99. This has no influence on the generated parser, except for the rule numbers, which are informative.
The merge of the duplicate code for struct_tag, enum_tag and enum_constant, as they all contained exactly the same code.
|
#
1.2 |
|
11-Jul-2021 |
rillig |
tests/lint: analyze yesterday's bug for parsing declarations
|
#
1.1 |
|
06-Jul-2021 |
rillig |
tests/lint: add tests for GCC __attribute__
Before fixing the wrong handling of __attribute__ that is demonstrated at the end of gcc_attribute.c, ensure that the attribute handling works in the most basic cases.
Lint currently accepts __attribute__ in more places than it should. This leads to some ambiguities in the grammar.
|