summaryrefslogtreecommitdiffstats
path: root/contrib/libxo/xolint/xolint.1
blob: 16a59fc91fdd39353bfe31802350275ca147f1ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
.\" #
.\" # Copyright (c) 2014, Juniper Networks, Inc.
.\" # All rights reserved.
.\" # This SOFTWARE is licensed under the LICENSE provided in the
.\" # ../Copyright file. By downloading, installing, copying, or 
.\" # using the SOFTWARE, you agree to be bound by the terms of that
.\" # LICENSE.
.\" # Phil Shafer, July 2014
.\" 
.Dd December 4, 2014
.Dt XOLINT 1
.Os
.Sh NAME
.Nm xolint
.Nd detect errors in programs using
.Xr xo_emit 3
.Sh SYNOPSIS
.Nm xolint
.Op Fl c
.Op Fl "C <flags>"
.Op Fl "d"
.Op Fl "D"
.Op Fl "I"
.Op Fl "p"
.Op Fl "V"
.Op Fl "X"
.Op Ar files...
.Sh DESCRIPTION
.Nm
is a tool for reporting common mistakes in format strings
in source code that invokes
.Xr xo_emit 3 .
It allows these errors
to be diagnosed at build time, rather than waiting until runtime.
.Pp
.Nm
takes one or more C files as arguments, and reports
error, warning, or informational messages as needed.
.Bl -tag -width "C <flags>"
.It Fl c
Invoke 'cpp' against the input file
.It Fl "C <flags>"
Flags that are passed to 'cpp'
.It Fl "d"
Enable debug output
.It Fl "D"
Generate documentation for all
.Nm
messages
.It Fl "I"
Generate a table of
.Dv xo_info_t
structures.
.It Fl "p"
Print the offending lines after the error message is displayed
.It Fl "V"
Do not report errors, but instead print a complete list of
all field names, sorted alphabetically.
The output can help spot
inconsistencies and spelling errors.
.It Fl "X"
Extract samples from
.Nm ,
suitable for internal testing.
.El
.Pp
The output message contains the source filename and line number, the
class of the message, the message, and, if
.Fl p
is given, the
line that contains the error:
.Bd -literal -offset indent
    % xolint -t xolint.c
    xolint.c: 16: error: anchor format should be "%d"
    16         xo_emit("{[:/%s}");
.Ed
.Sh ADDITIONAL DOCUMENTATION
Complete documentation can be found on github:
.Bd -literal -offset indent
http://juniper.github.io/libxo/libxo-manual.html
.Ed
.Pp
.Nm libxo
lives on github as:
.Bd -literal -offset indent
https://github.com/Juniper/libxo
.Ed
.Pp
The latest release of
.Nm libxo
is available at:
.Bd -literal -offset indent
https://github.com/Juniper/libxo/releases
.Ed
.Sh SEE ALSO
.Xr libxo 3 ,
.Xr xo_emit 3
.Sh HISTORY
The
.Nm libxo
library was added in
.Fx 11.0 .
.Sh AUTHOR
Phil Shafer
OpenPOWER on IntegriCloud