Print this page
new smatch
*** 18,27 ****
--- 18,33 ----
off those warnings, pass the negation of the associated warning option,
\fB\-Wno\-something\fR.
.
.SH WARNING OPTIONS
.TP
+ .B \-fmax-warnings=COUNT
+ Set the maximum number of displayed warnings to COUNT, which should be
+ a numerical value or 'unlimited'.
+ The default limit is 100.
+ .
+ .TP
.B \-Wsparse\-all
Turn on all sparse warnings, except for those explicitly disabled via
\fB\-Wno\-something\fR.
.TP
.B \-Wsparse\-error
*** 29,45 ****
.TP
.B \-Waddress\-space
Warn about code which mixes pointers to different address spaces.
Sparse allows an extended attribute
! .BI __attribute__((address_space( num )))
! on pointers, which designates a pointer target in address space \fInum\fR (a
! constant integer). With \fB\-Waddress\-space\fR, Sparse treats pointers with
! identical target types but different address spaces as distinct types. To
! override this warning, such as for functions which convert pointers between
! address spaces, use a type that includes \fB__attribute__((force))\fR.
Sparse issues these warnings by default. To turn them off, use
\fB\-Wno\-address\-space\fR.
.
.TP
.B \-Wbitwise
--- 35,59 ----
.TP
.B \-Waddress\-space
Warn about code which mixes pointers to different address spaces.
Sparse allows an extended attribute
! .BI __attribute__((address_space( id )))
! on pointers, which designates a pointer target in address space \fIid\fR (an
! identifier or a constant integer).
! With \fB\-Waddress\-space\fR, Sparse treats pointers with
! identical target types but different address spaces as distinct types and
! will warn accordingly.
+ Sparse will also warn on casts which remove the address space (casts to an
+ integer type or to a plain pointer type). An exception to this is when the
+ destination type is \fBuintptr_t\fR (or \fBunsigned long\fR) since such casts
+ are often used to "get a pointer value representation in an integer type" and
+ such values are independent of the address space.
+
+ To override these warnings, use a type that includes \fB__attribute__((force))\fR.
+
Sparse issues these warnings by default. To turn them off, use
\fB\-Wno\-address\-space\fR.
.
.TP
.B \-Wbitwise
*** 69,82 ****
--- 83,113 ----
Sparse issues these warnings by default. To turn them off, use
\fB\-Wno\-bitwise\fR.
.
.TP
+ .B \-Wbitwise\-pointer
+ Same as \fB\-Wbitwise\fR but for casts to or from pointers to bitwise types.
+
+ Sparse does not issue these warnings by default.
+ .
+ .TP
+ .B \-Wcast\-from\-as
+ Warn about casts which remove an address space from a pointer type.
+
+ This is similar to \fB\-Waddress\-space\fR but will also warn
+ on casts to \fBunsigned long\fR.
+
+ Sparse does not issues these warnings by default.
+ .
+ .TP
.B \-Wcast\-to\-as
Warn about casts which add an address space to a pointer type.
A cast that includes \fB__attribute__((force))\fR will suppress this warning.
+ No warning is generated if the original type is \fBuintptr_t\fR
+ (or \fBunsigned long\fR).
Sparse does not issue these warnings by default.
.
.TP
.B \-Wcast\-truncate
*** 211,227 ****
Sparse issues these warnings by default. To turn them off, use
\fB\-Wno\-enum\-mismatch\fR.
.
.TP
- .B \-Wempty\-character\-constant
- Warn about a constant such as ''.
-
- Sparse issues these warnings by default. To turn them off, use
- \fB\-Wno\-empty\-character\-constant\fR.
- .
- .TP
.B \-Wexternal\-function\-has\-definition
Warn about function definitions that are declared with external linkage.
Sparse issues these warnings by default. To turn them off, use
\fB\-Wno\-external\-function\-has\-definition\fR.
--- 242,251 ----
*** 254,270 ****
The limit can be changed with \fB\-fmemcpy\-max\-count=COUNT\fR,
the default being \fB100000\fR.
.
.TP
- .B \-Wnon\-ansi\-function\-declaration
- Warn about non-ANSI function declarations.
-
- Sparse issues these warnings by default. To turn them off, use
- \fB\-Wno\-non\-ansi\-function\-declaration\fR.
- .
- .TP
.B \-Wnon\-pointer\-null
Warn about the use of 0 as a NULL pointer.
0 has integer type. NULL has pointer type.
--- 278,287 ----
*** 364,377 ****
Such declarations can lead to error-prone code.
Sparse does not issue these warnings by default.
.
.TP
.B \-Wsizeof-bool
Warn when checking the sizeof a _Bool.
! C99 does not specify the sizeof a _Bool. gcc uses 1.
Sparse does not issue these warnings by default.
.
.TP
.B \-Wtransparent\-union
--- 381,406 ----
Such declarations can lead to error-prone code.
Sparse does not issue these warnings by default.
.
.TP
+ .B \-Wshift-count-negative
+ Warn if a shift count is negative.
+
+ Sparse issues these warnings by default.
+ .
+ .TP
+ .B \-Wshift-count-overflow
+ Warn if a shift count is bigger than the operand's width.
+
+ Sparse issues these warnings by default.
+ .
+ .TP
.B \-Wsizeof-bool
Warn when checking the sizeof a _Bool.
! C99 does not specify the size of a _Bool. GCC, by default, uses \fI1\fR.
Sparse does not issue these warnings by default.
.
.TP
.B \-Wtransparent\-union
*** 410,446 ****
The \fIdir\fR name would normally take the form of the target's
normalized GNU triplet. (e.g. i386-linux-gnu).
.
.SH DEBUG OPTIONS
.TP
- .B \-fdump-linearize[=only]
- Dump the IR code of a function directly after its linearization,
- before any simplifications are made. If the argument \fB=only\fR is
- also given no further processing is done on the function.
- .
.B \-fmem-report
Report some statistics about memory allocation used by the tool.
.
.SH OTHER OPTIONS
.TP
.B \-fmemcpy-max-count=COUNT
Set the limit for the warnings given by \fB-Wmemcpy-max-count\fR.
! A COUNT of 0, useless in itself, will effectively disable the warning.
The default limit is 100000.
.
.TP
.B \-ftabstop=WIDTH
Set the distance between tab stops. This helps sparse report correct
column numbers in warnings or errors. If the value is less than 1 or
greater than 100, the option is ignored. The default is 8.
.
.SH SEE ALSO
.BR cgcc (1)
.
.SH HOMEPAGE
http://www.kernel.org/pub/software/devel/sparse/
.
.SH MAILING LIST
linux-sparse@vger.kernel.org
.
! .SH MAINTAINER
! Christopher Li <sparse@chrisli.org>
--- 439,494 ----
The \fIdir\fR name would normally take the form of the target's
normalized GNU triplet. (e.g. i386-linux-gnu).
.
.SH DEBUG OPTIONS
.TP
.B \-fmem-report
Report some statistics about memory allocation used by the tool.
.
.SH OTHER OPTIONS
.TP
+ .B \-fdiagnostic-prefix[=PREFIX]
+ Prefix all diagnostics by the given PREFIX, followed by ": ".
+ If no one is given "sparse" is used.
+ The default is to not use a prefix at all.
+ .
+ .TP
.B \-fmemcpy-max-count=COUNT
Set the limit for the warnings given by \fB-Wmemcpy-max-count\fR.
! A COUNT of 'unlimited' or '0' will effectively disable the warning.
The default limit is 100000.
.
.TP
.B \-ftabstop=WIDTH
Set the distance between tab stops. This helps sparse report correct
column numbers in warnings or errors. If the value is less than 1 or
greater than 100, the option is ignored. The default is 8.
.
+ .TP
+ .B \-f[no-]unsigned-char, \-f[no-]signed-char
+ Let plain 'char' be unsigned or signed.
+ By default chars are signed.
+ .
.SH SEE ALSO
.BR cgcc (1)
.
.SH HOMEPAGE
http://www.kernel.org/pub/software/devel/sparse/
.
.SH MAILING LIST
linux-sparse@vger.kernel.org
.
! .SH CONTRIBUTINGS AND REPORTING BUGS
! Submission of patches and reporting of bugs, as well as discussions
! related to Sparse, should be done via the mailing list (linux-sparse@vger.kernel.org)
! where the development and maintenance is primarily done.
! You do not have to be subscribed to the list to send a message there.
!
! Bugs can also be reported and tracked via the Linux kernel's bugzilla:
! http://bugzilla.kernel.org/enter_bug.cgi?component=Sparse&product=Tools .
! .
! .SH AUTHORS
! Sparse was started by Linus Torvalds.
! The complete list of contributors can be find at
! https://www.openhub.net/p/sparse/contributors .
!
! Luc Van Oostenryck is Sparse's current maintainer.