.\" Please adjust this date whenever revising the manpage.
-.Dd November 29, 2008
+.Dd December 9, 2008
.Dt CPARSER 1
.Sh NAME
.Nm cparser
.Op Fl l Ar library
.Op Fl o Ar outfile
.Op Fl x Ar language
+.Op Fl Wl, Ns Ar option
+.Op Fl Wp, Ns Ar option
.Ar
.Sh DESCRIPTION
.Nm
.Fl Winit-self ,
.Fl Wmain ,
.Fl Wnonnull ,
+.Fl Wparentheses ,
.Fl Wpointer-arith ,
.Fl Wredundant-decls ,
.Fl Wreturn-type ,
.Fl Wunused-variable .
.It Fl Wcast-qual
Warn whenever a pointer cast removes qualifiers from the pointed-to type, e.g. casting a const char* to char*.
-.It Fl char-subscripts
-Warn about using an expression of type char as array subscript, e.g. char c; arr[c].
+.It Fl Wchar-subscripts
+Warn about using an expression of type char as array subscript, e.g. char\ c; arr[c].
.It Fl Wdeclaration-after-statement
Warn about mixing declarations and statements, which is not allowed prior to C99.
.It Fl Wdiv-by-zero
Warn if a multicharacter constant ('FOOF') is used.
.It Fl Wnested-externs
Warn if an 'extern' declaration is encountered within a function.
+.It Fl Wparentheses
+Warn if parentheses are omitted in certain contexts.
+Warn if an assignment is used as condition, e.g. if\ (x\ =\ 23).
+Warn if && without parentheses is used within ||, e.g. if\ (x\ ||\ y\ &&\ z).
+Warn if it there may be confusion which 'if'-statement an 'else'-branch belongs to, e.g. if\ (x)\ if\ (y)\ {}\ else\ {}.
+Warn if cascaded comparisons appear which do not have their mathematical meaning, e.g. if\ (23\ <=\ x\ <\ 42).
+Warn if + or - is used as operand of << or >>, e.g. x\ +\ y\ <<\ z.
.It Fl Wredundant-decls
Warn about redundant declarations, i.e. multiple declarations of the same object or static forward declarations which have no use before their definition.
.It Fl Wunreachable-code
.Fl Wunused-value ,
.Fl Wunused-variable .
.It Fl Wunused-parameter
-Warn when a parameter is never used or only ever read to calculate its own new value, e.g. x = x + 1.
+Warn when a parameter is never used or only ever read to calculate its own new value, e.g. x\ =\ x\ +\ 1.
.It Fl Wunused-variable
-Warn when a variable is never used or only ever read to calculate its own new value, e.g. x = x + 1.
+Warn when a variable is never used or only ever read to calculate its own new value, e.g. x\ =\ x\ +\ 1.
.It Fl w
Suppress all warnings.
.It Fl I Ar dir
.It Cm none
Revert to auto-detection
.El
+.It Fl Wl, Ns Ar option
+Pass
+.Ar option
+to the linker.
+.It Fl Wp, Ns Ar option
+Pass
+.Ar option
+to the preprocessor.
.El
.Sh SEE ALSO
.Xr gcc 1 ,