Commit Graph

119 Commits

Author SHA1 Message Date
Xiang Xiao
f905563cc9 tools/nxstyle: Add kbps to the while suffix list
and correct offset by 1 error

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-05-15 13:55:58 +03:00
Xiang Xiao
317cc6c174 tools/nxstyle: Add the suffix white list
and initialize it to "kHz", "Mbps", and "us"

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-05-13 16:39:16 +03:00
Xiang Xiao
59db30fd59 tools/nxstyle: Add __sFILE_fake(defined by newlib) to the white list
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-05-06 14:43:57 -03:00
Xiang Xiao
fa42ebace4 tools/nxstyle: Order g_white_prefix by alphanum
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-03-20 20:35:08 +02:00
Michael Mogenson
2c450be9e8 nxstyle: ignore mixed-case identifiers for Lua types 2022-03-20 23:32:20 +08:00
Michael Jung
0a37744826 Fix jlink-nuttx build with GCC 10.2
The packed-attribute on the tcb_info_s type was misplaced, which caused
incompatible memory layout between host and target.  According to
current GCC documentation:

> You may specify type attributes in an enum, struct or union type
> declaration or definition by placing them immediately after the struct,
> union or enum keyword.  You can also place them just past the closing
> curly brace of the definition, but this is less preferred because
> logically the type should be fully defined at the closing brace.

I also added jlink-nuttx.so to the .gitignore list and updated nxstyle
to ignore the camel case function names required by JLinkGDBServer.

Signed-off-by: Michael Jung <mijung@gmx.net>
2022-02-15 13:48:52 +01:00
Xiang Xiao
7dfa768552 tools/nxstyle: add Segger RTT prototype name into white list
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-02-01 11:26:46 +01:00
chao.an
3fc18d50b8 tools/nxstyle: add Segger System View prototype name into white list
Reference:
https: //github.com/SEGGERMicro/SystemView/blob/master/SYSVIEW/SEGGER_SYSVIEW.h

Signed-off-by: chao.an <anchao@xiaomi.com>
2022-01-29 17:26:04 +08:00
Alexander Lunev
c45534f41b tools/nxstyle: fixed "Mixed case identifier found" errors related to sim/wpcap 2022-01-27 10:37:32 +08:00
zhouliang3
1f53a058fa nuttx:Change fs strncpy to strlcpy to avoid losing'\0'
Signed-off-by: zhouliang3 <zhouliang3@xiaomi.com>
2021-12-30 18:06:00 +08:00
Petro Karashchenko
3ccb657dc2 nuttx: remove space befone newline in logs
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2021-12-27 21:01:19 -06:00
Petro Karashchenko
298c372afa tools/nxstyle: fix nxstyle check for pointer to function types
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2021-11-26 14:55:34 -03:00
chenwei23
39cdd99d77 mm: Support the kernel address sanitizer
Signed-off-by: chenwei23 <chenwei23@xiaomi.com>
2021-11-02 13:32:47 -03:00
liucheng5
d1ebdf6e65 fix: nxstyle: fix a bug after "'\'"
When nxstyle.c detects a "\'", it seeks the other "\'", records the index as "endndx", then skip the "'x'". But it makes the index "n" as "endndx+1".Then it comes to the "n++" in "for()". So the character after "'x'" will be skipped, causing some errors.
For example, "{"devid", no_argument, NULL, 'i'},", the "}" will be skipped, causing a lot of error reports.
Now it's fixed.

Signed-off-by: liucheng5 <liucheng5@xiaomi.com>
2021-10-28 09:59:36 -05:00
liucheng5
b42d2a7284 fix: nxstyle: detect --,->,++ not next to operand
The nxstyle check tool can't recongnize the style error that --, -> or ++ is not next to the operand. For example, "idx ++;", "p ->member" or "(-- idx)", which is in incorrect style, is not recongnized. This patch add detection for these cases.

Signed-off-by: liucheng5 <liucheng5@xiaomi.com>
2021-09-19 11:06:05 -04:00
yangjiukui
014d6d026c tools/nxstyle: Fix the check tool incorrectly reported no alignment.
The nxstyle check tool recognizes the division operator as
a comment. Check the following content to determine whether
it is a comment.

Change-Id: Id07c6668489895b45a1042794bc3acca66cd3c47
Signed-off-by: yangjiukui <yangjiukui@xiaomi.com>
2021-09-08 09:45:06 +08:00
Gustavo Henrique Nihei
f547883747 tools/nxstyle: Extend check to any URI scheme 2021-05-07 19:38:10 -07:00
Gustavo Henrique Nihei
886009f15f tools/nxstyle: Add _Atomic keyword to whitelisted words 2021-05-06 06:48:59 -07:00
chao.an
692856a626 tools/nxstyle: rename exception _Unwind_Ptr to _Unwind to support fuzzy match
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-04-19 04:45:04 -07:00
Alin Jerpelea
f878390c6d tools: nxstyle: add exception for X11 keysymdef
Add exception for XK_* Mixed Case defined by X11 keysymdef.h

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-04-03 11:56:35 -05:00
Alin Jerpelea
c7c3683845 tools: nxstyle: add Mixed case exceptions for nfs
add exceptions for nfs to avoid future false warnings

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-04-03 09:37:06 -05:00
Abdelatif Guettouche
aaedc99612 nxstyle: Fix typos in reported errors.
Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>
2021-04-01 07:06:49 -05:00
Alin Jerpelea
2a03582541 nxstyle: add Mixed Case exceptions
Add _Far and _Erom to the mixed case exceptions
Ref:
nuttx/compiler.h

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-03-31 09:17:54 -07:00
Alin Jerpelea
122f59b761 tools; nxstyle: add exception for ascii.h definitions
The following definitions are added as exceptions
ASCII_a -> ASCII_z

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-03-20 19:22:58 -07:00
Gustavo Henrique Nihei
95c8c99a3f tools/nxstyle: Verify relative path in the file header 2021-03-06 20:17:23 -08:00
Alin Jerpelea
796ef13b20 tools: nxstyle: add L_tmpnam/P_tmpdir exceptions
Those exceptions are defined in
https://pubs.opengroup.org/onlinepubs/9699919799/functions/tempnam.html

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-03-03 18:52:53 -08:00
YAMAMOTO Takashi
954115e097 nxstyle: Add more inttypes.h stuff to the whitelist 2020-11-05 15:19:31 +01:00
Xiang Xiao
cfc58d1913 nxstyle: Add some unwind name to the white list
we can't change the case because it is defined by ARM

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-07-11 10:34:22 -07:00
Xiang Xiao
b2f3a4b5f9 tools/nxstyle: Support the white list
and add _Exit to the white list

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-06-28 21:07:57 +01:00
Xiang Xiao
dde25b0f80 tools/nxstyle: Fix AddressSanitizer error
=================================================================
==2474==ERROR: AddressSanitizer: stack-buffer-underflow on address 0x7fffb7e59b5f at pc 0x561fffec79f6 bp 0x7fffb7e59ac0 sp 0x7fffb7e59ab0
READ of size 1 at 0x7fffb7e59b5f thread T0
    #0 0x561fffec79f5 in block_comment_width /home/xiaoxiang/mirtos/nuttx/tools/nxstyle.c:355

Address 0x7fffb7e59b5f is located in stack of thread T0 at offset 31 in frame
    #0 0x561fffec7b90 in get_line_width /home/xiaoxiang/mirtos/nuttx/tools/nxstyle.c:419

  This frame has 1 object(s):
    [32, 544) 'line' (line 420) <== Memory access at offset 31 underflows this variable
HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
      (longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: stack-buffer-underflow /home/xiaoxiang/mirtos/nuttx/tools/nxstyle.c:355 in block_comment_width
Shadow bytes around the buggy address:
  0x100076fc3310: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x100076fc3320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x100076fc3330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x100076fc3340: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x100076fc3350: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x100076fc3360: 00 00 00 00 00 00 00 00 f1 f1 f1[f1]00 00 00 00
  0x100076fc3370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x100076fc3380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x100076fc3390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x100076fc33a0: 00 00 00 00 00 00 00 00 00 00 00 00 f3 f3 f3 f3
  0x100076fc33b0: f3 f3 f3 f3 00 00 00 00 00 00 00 00 00 00 00 00
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
==2474==ABORTING

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ie7dee3cdfdbbd04ea9cdb58e227afef07073cecd
2020-06-16 09:56:22 -06:00
Gregory Nutt
3b62765edd nxstyle: Fix distinction be source and header file for long lines.
For some unknow reason, long lines were reported as WARNING is header files, but as ERRORS in C source file.  There are errors where ever they occur.
2020-05-19 20:09:57 -04:00
Nathan Hartman
3334b40aef nxstyle: Allow Hz, KHz, GHz in identifiers
Per the coding standard, we allow MHz as one of the few allowed
exceptions to the identifier case rules.

However, because this exception specifically looked for "MHz" we
would generate undeserved nxstyle errors for Hz, KHz, GHz.

This change adds recognition of any Hz value by eliminating the
requirement for Hz to be preceded by M.

tools/nxstyle.c:

    * main(): Eliminate requirement for Hz to be preceded by M to
      match the rule for allowed mixed case identifier. Update
      relevant comments.

See:
https://cwiki.apache.org/confluence/display/NUTTX/Coding+Standard#macros

Mailing list discussion archived at:
https://lists.apache.org/thread.html/r481b9d145f439c24c8d70992081bf670bc0e893167149e0017519439%40%3Cdev.nuttx.apache.org%3E
2020-05-18 18:00:10 -06:00
Gregory Nutt
58589db931 tools/nxstyle.c: Fix detection of long single line comments.
This resolves issue 718:  nxstyle line width check was ignoring the line width check for single line comments.

This turned out to be an artifact in parsing.  Usually when parsing character by character, the file character to be parsed was '/n'.  Howefver, in the case of parsing single line comments, the final character was the NUL terminator.  This means that the lenth check was not being performed in the case of single line comments.

NOTE:  Currently, I have suppressed error reports for single line right-hand comments.  My fear is that this will unmask more standard violations than we can cope with.  It is easy to re-enable and perhaps we should do that in the future:

          /* Check for long lines
           *
           * REVISIT:  Long line checks suppressed on right hand comments
           * for now.  This just prevents a large number of difficult-to-
           * fix complaints that we would have otherwise.
           */

          if (m > g_maxline && !rhcomment)  <-- remote the second condition
2020-04-06 19:47:57 +01:00
raiden00pl
15242a65b6 tools/nxstyle.c: handle scientific notation with a negative exponent (eg. 9e-10) 2020-04-03 10:47:32 -06:00
Gregory Nutt
65739a38fb tools/nxstyle.c: Alloc MHz in pre-processor variable names.
The sub-string MHz is used frequently is pre-processor variable definitions.  The section "Lowercase Exceptions" permits reasonable use of lowercase characters in pre-processor variable names and, given the frequency of the use of MHz (no pun intended), it certainly should qualify.
2020-04-02 20:29:26 +01:00
Gregory Nutt
a34e5fc043 tools/nxstyle.c: All Public Function Prototypes in C files
Allow "Public Function Prototypes" sections in .c files.  Per the coding standard, all public function prototypes belong in .c files.  However, there are some situations when the public function prototype is needed in a .c file and it shoudld, most correctly, be placed in a "Public Function Prototypes" section.
2020-04-01 22:57:51 +01:00
Gregory Nutt
7f510a61b4 tools/nxstyle.c: Add fixedmath.h defines to white-listed prefixes
Checking for white-listed prefixes is also simpler now because the check is table driver.  New data structure:  g_white_prefix[] and new function white_prefix().
2020-03-31 19:26:26 +01:00
Gregory Nutt
652e152d66 tools/nxstyle: Ignore stub names that begin with STUB_*
The names use for stub functions follows a non-standard convention:  They begin with STUB_
2020-03-21 19:06:32 +01:00
Johannes Schock
898141300c Don't check position of comments right of code when separated by preprocessor line without comment. 2020-03-19 09:36:57 -06:00
Johanne Schock
cdf615855a Added assembly header detection. 2020-03-14 08:38:39 -06:00
Johanne Schock
645cf6d547 Handling of struct initializers changed.
Break conditionals with || at the end.
2020-03-13 07:58:52 -06:00
johannes-nivus
45196cad17
tools/nxstyle.c: Check for missing space before closing comment faulty (#543)
*Addresses Issue #540, check for missing space before closing comment was faulty
2020-03-11 11:08:01 -06:00
liuhaitao
aa4052936c tools/nxstyle: clean up the no and unknown file extension info
Clean up the no and unknown file extension info since only .h and .c
files supported. Just ignore them quietly.

Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
2020-03-10 08:43:23 -06:00
Johanne Schock
0b4ffa20a8 Checks for multiline comments right of #el..., changes message for a certain case of a comment following a right of code comment 2020-03-10 07:06:35 -06:00
Johanne Schock
f764947c73 Signal error for multiline comment right of #if 2020-03-09 10:00:26 -06:00
Johanne Schock
745e0a4ca9 Some more fine tuning
Handle #define different than other preprocessor lines
Ignore backslash at the end of a comment right of a preprocessor line
2020-03-09 10:00:26 -06:00
Johanne Schock
5e5b6c2069 Finetuning false positive 2020-03-09 10:00:26 -06:00
Johanne Schock
fbe65a2d7d Restrict check of right of code comments to #define in case of preprocessor lines 2020-03-09 10:00:26 -06:00
Johanne Schock
46b8347217 Style 2020-03-09 10:00:26 -06:00
Johanne Schock
b324596bac Formatting 2020-03-09 10:00:26 -06:00