annotate clang-tools-extra/docs/pp-trace.rst @ 150:1d019706d866

LLVM10
author anatofuz
date Thu, 13 Feb 2020 15:10:13 +0900
parents
children 0572611fdcc8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 .. index:: pp-trace
anatofuz
parents:
diff changeset
2
anatofuz
parents:
diff changeset
3 ==================================
anatofuz
parents:
diff changeset
4 pp-trace User's Manual
anatofuz
parents:
diff changeset
5 ==================================
anatofuz
parents:
diff changeset
6
anatofuz
parents:
diff changeset
7 .. toctree::
anatofuz
parents:
diff changeset
8 :hidden:
anatofuz
parents:
diff changeset
9
anatofuz
parents:
diff changeset
10 :program:`pp-trace` is a standalone tool that traces preprocessor
anatofuz
parents:
diff changeset
11 activity. It's also used as a test of Clang's PPCallbacks interface.
anatofuz
parents:
diff changeset
12 It runs a given source file through the Clang preprocessor, displaying
anatofuz
parents:
diff changeset
13 selected information from callback functions overridden in a
anatofuz
parents:
diff changeset
14 `PPCallbacks <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html>`_
anatofuz
parents:
diff changeset
15 derivation. The output is in a high-level YAML format, described in
anatofuz
parents:
diff changeset
16 :ref:`OutputFormat`.
anatofuz
parents:
diff changeset
17
anatofuz
parents:
diff changeset
18 .. _Usage:
anatofuz
parents:
diff changeset
19
anatofuz
parents:
diff changeset
20 pp-trace Usage
anatofuz
parents:
diff changeset
21 ==============
anatofuz
parents:
diff changeset
22
anatofuz
parents:
diff changeset
23 Command Line Format
anatofuz
parents:
diff changeset
24 -------------------
anatofuz
parents:
diff changeset
25
anatofuz
parents:
diff changeset
26 ``pp-trace [<pp-trace-options>] <source-file> [-- <front-end-options>]``
anatofuz
parents:
diff changeset
27
anatofuz
parents:
diff changeset
28 ``<pp-trace-options>`` is a place-holder for options
anatofuz
parents:
diff changeset
29 specific to pp-trace, which are described below in
anatofuz
parents:
diff changeset
30 :ref:`CommandLineOptions`.
anatofuz
parents:
diff changeset
31
anatofuz
parents:
diff changeset
32 ``<source-file>`` specifies the source file to run through the preprocessor.
anatofuz
parents:
diff changeset
33
anatofuz
parents:
diff changeset
34 ``<front-end-options>`` is a place-holder for regular
anatofuz
parents:
diff changeset
35 `Clang Compiler Options <https://clang.llvm.org/docs/UsersManual.html#command-line-options>`_,
anatofuz
parents:
diff changeset
36 which must follow the <source-file>.
anatofuz
parents:
diff changeset
37
anatofuz
parents:
diff changeset
38 .. _CommandLineOptions:
anatofuz
parents:
diff changeset
39
anatofuz
parents:
diff changeset
40 Command Line Options
anatofuz
parents:
diff changeset
41 --------------------
anatofuz
parents:
diff changeset
42
anatofuz
parents:
diff changeset
43 .. option:: -callbacks <comma-separated-globs>
anatofuz
parents:
diff changeset
44
anatofuz
parents:
diff changeset
45 This option specifies a comma-separated list of globs describing the list of
anatofuz
parents:
diff changeset
46 callbacks that should be traced. Globs are processed in order of appearance.
anatofuz
parents:
diff changeset
47 Positive globs add matched callbacks to the set, netative globs (those with
anatofuz
parents:
diff changeset
48 the '-' prefix) remove callacks from the set.
anatofuz
parents:
diff changeset
49
anatofuz
parents:
diff changeset
50 * FileChanged
anatofuz
parents:
diff changeset
51 * FileSkipped
anatofuz
parents:
diff changeset
52 * FileNotFound
anatofuz
parents:
diff changeset
53 * InclusionDirective
anatofuz
parents:
diff changeset
54 * moduleImport
anatofuz
parents:
diff changeset
55 * EndOfMainFile
anatofuz
parents:
diff changeset
56 * Ident
anatofuz
parents:
diff changeset
57 * PragmaDirective
anatofuz
parents:
diff changeset
58 * PragmaComment
anatofuz
parents:
diff changeset
59 * PragmaDetectMismatch
anatofuz
parents:
diff changeset
60 * PragmaDebug
anatofuz
parents:
diff changeset
61 * PragmaMessage
anatofuz
parents:
diff changeset
62 * PragmaDiagnosticPush
anatofuz
parents:
diff changeset
63 * PragmaDiagnosticPop
anatofuz
parents:
diff changeset
64 * PragmaDiagnostic
anatofuz
parents:
diff changeset
65 * PragmaOpenCLExtension
anatofuz
parents:
diff changeset
66 * PragmaWarning
anatofuz
parents:
diff changeset
67 * PragmaWarningPush
anatofuz
parents:
diff changeset
68 * PragmaWarningPop
anatofuz
parents:
diff changeset
69 * MacroExpands
anatofuz
parents:
diff changeset
70 * MacroDefined
anatofuz
parents:
diff changeset
71 * MacroUndefined
anatofuz
parents:
diff changeset
72 * Defined
anatofuz
parents:
diff changeset
73 * SourceRangeSkipped
anatofuz
parents:
diff changeset
74 * If
anatofuz
parents:
diff changeset
75 * Elif
anatofuz
parents:
diff changeset
76 * Ifdef
anatofuz
parents:
diff changeset
77 * Ifndef
anatofuz
parents:
diff changeset
78 * Else
anatofuz
parents:
diff changeset
79 * Endif
anatofuz
parents:
diff changeset
80
anatofuz
parents:
diff changeset
81 .. option:: -output <output-file>
anatofuz
parents:
diff changeset
82
anatofuz
parents:
diff changeset
83 By default, pp-trace outputs the trace information to stdout. Use this
anatofuz
parents:
diff changeset
84 option to output the trace information to a file.
anatofuz
parents:
diff changeset
85
anatofuz
parents:
diff changeset
86 .. _OutputFormat:
anatofuz
parents:
diff changeset
87
anatofuz
parents:
diff changeset
88 pp-trace Output Format
anatofuz
parents:
diff changeset
89 ======================
anatofuz
parents:
diff changeset
90
anatofuz
parents:
diff changeset
91 The pp-trace output is formatted as YAML. See https://yaml.org/ for general
anatofuz
parents:
diff changeset
92 YAML information. It's arranged as a sequence of information about the
anatofuz
parents:
diff changeset
93 callback call, including the callback name and argument information, for
anatofuz
parents:
diff changeset
94 example:::
anatofuz
parents:
diff changeset
95
anatofuz
parents:
diff changeset
96 ---
anatofuz
parents:
diff changeset
97 - Callback: Name
anatofuz
parents:
diff changeset
98 Argument1: Value1
anatofuz
parents:
diff changeset
99 Argument2: Value2
anatofuz
parents:
diff changeset
100 (etc.)
anatofuz
parents:
diff changeset
101 ...
anatofuz
parents:
diff changeset
102
anatofuz
parents:
diff changeset
103 With real data:::
anatofuz
parents:
diff changeset
104
anatofuz
parents:
diff changeset
105 ---
anatofuz
parents:
diff changeset
106 - Callback: FileChanged
anatofuz
parents:
diff changeset
107 Loc: "c:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-include.cpp:1:1"
anatofuz
parents:
diff changeset
108 Reason: EnterFile
anatofuz
parents:
diff changeset
109 FileType: C_User
anatofuz
parents:
diff changeset
110 PrevFID: (invalid)
anatofuz
parents:
diff changeset
111 (etc.)
anatofuz
parents:
diff changeset
112 - Callback: FileChanged
anatofuz
parents:
diff changeset
113 Loc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-include.cpp:5:1"
anatofuz
parents:
diff changeset
114 Reason: ExitFile
anatofuz
parents:
diff changeset
115 FileType: C_User
anatofuz
parents:
diff changeset
116 PrevFID: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/Input/Level1B.h"
anatofuz
parents:
diff changeset
117 - Callback: EndOfMainFile
anatofuz
parents:
diff changeset
118 ...
anatofuz
parents:
diff changeset
119
anatofuz
parents:
diff changeset
120 In all but one case (MacroDirective) the "Argument" scalars have the same
anatofuz
parents:
diff changeset
121 name as the argument in the corresponding PPCallbacks callback function.
anatofuz
parents:
diff changeset
122
anatofuz
parents:
diff changeset
123 Callback Details
anatofuz
parents:
diff changeset
124 ----------------
anatofuz
parents:
diff changeset
125
anatofuz
parents:
diff changeset
126 The following sections describe the pupose and output format for each callback.
anatofuz
parents:
diff changeset
127
anatofuz
parents:
diff changeset
128 Click on the callback name in the section heading to see the Doxygen
anatofuz
parents:
diff changeset
129 documentation for the callback.
anatofuz
parents:
diff changeset
130
anatofuz
parents:
diff changeset
131 The argument descriptions table describes the callback argument information
anatofuz
parents:
diff changeset
132 displayed.
anatofuz
parents:
diff changeset
133
anatofuz
parents:
diff changeset
134 The Argument Name field in most (but not all) cases is the same name as the
anatofuz
parents:
diff changeset
135 callback function parameter.
anatofuz
parents:
diff changeset
136
anatofuz
parents:
diff changeset
137 The Argument Value Syntax field describes the values that will be displayed
anatofuz
parents:
diff changeset
138 for the argument value. It uses an ad hoc representation that mixes literal
anatofuz
parents:
diff changeset
139 and symbolic representations. Enumeration member symbols are shown as the
anatofuz
parents:
diff changeset
140 actual enum member in a (member1|member2|...) form. A name in parentheses
anatofuz
parents:
diff changeset
141 can either represent a place holder for the described value, or confusingly,
anatofuz
parents:
diff changeset
142 it might be a literal, such as (null), for a null pointer.
anatofuz
parents:
diff changeset
143 Locations are shown as quoted only to avoid confusing the documentation generator.
anatofuz
parents:
diff changeset
144
anatofuz
parents:
diff changeset
145 The Clang C++ Type field is the type from the callback function declaration.
anatofuz
parents:
diff changeset
146
anatofuz
parents:
diff changeset
147 The description describes the argument or what is displayed for it.
anatofuz
parents:
diff changeset
148
anatofuz
parents:
diff changeset
149 Note that in some cases, such as when a structure pointer is an argument
anatofuz
parents:
diff changeset
150 value, only some key member or members are shown to represent the value,
anatofuz
parents:
diff changeset
151 instead of trying to display all members of the structure.
anatofuz
parents:
diff changeset
152
anatofuz
parents:
diff changeset
153 `FileChanged <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a7cc8cfaf34114fc65e92af621cd6464e>`_ Callback
anatofuz
parents:
diff changeset
154 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
155
anatofuz
parents:
diff changeset
156 FileChanged is called when the preprocessor enters or exits a file, both the
anatofuz
parents:
diff changeset
157 top level file being compiled, as well as any #include directives. It will
anatofuz
parents:
diff changeset
158 also be called as a result of a system header pragma or in internal renaming
anatofuz
parents:
diff changeset
159 of a file.
anatofuz
parents:
diff changeset
160
anatofuz
parents:
diff changeset
161 Argument descriptions:
anatofuz
parents:
diff changeset
162
anatofuz
parents:
diff changeset
163 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
164 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
165 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
166 Loc "(file):(line):(col)" SourceLocation The location of the directive.
anatofuz
parents:
diff changeset
167 Reason (EnterFile|ExitFile|SystemHeaderPragma|RenameFile) PPCallbacks::FileChangeReason Reason for change.
anatofuz
parents:
diff changeset
168 FileType (C_User|C_System|C_ExternCSystem) SrcMgr::CharacteristicKind Include type.
anatofuz
parents:
diff changeset
169 PrevFID ((file)|(invalid)) FileID Previous file, if any.
anatofuz
parents:
diff changeset
170 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
171
anatofuz
parents:
diff changeset
172 Example:::
anatofuz
parents:
diff changeset
173
anatofuz
parents:
diff changeset
174 - Callback: FileChanged
anatofuz
parents:
diff changeset
175 Loc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-include.cpp:1:1"
anatofuz
parents:
diff changeset
176 Reason: EnterFile
anatofuz
parents:
diff changeset
177 FileType: C_User
anatofuz
parents:
diff changeset
178 PrevFID: (invalid)
anatofuz
parents:
diff changeset
179
anatofuz
parents:
diff changeset
180 `FileSkipped <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#ab5b338a0670188eb05fa7685bbfb5128>`_ Callback
anatofuz
parents:
diff changeset
181 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
182
anatofuz
parents:
diff changeset
183 FileSkipped is called when a source file is skipped as the result of header
anatofuz
parents:
diff changeset
184 guard optimization.
anatofuz
parents:
diff changeset
185
anatofuz
parents:
diff changeset
186 Argument descriptions:
anatofuz
parents:
diff changeset
187
anatofuz
parents:
diff changeset
188 ============== ================================================== ============================== ========================================================
anatofuz
parents:
diff changeset
189 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
190 ============== ================================================== ============================== ========================================================
anatofuz
parents:
diff changeset
191 ParentFile ("(file)" or (null)) const FileEntry The file that #included the skipped file.
anatofuz
parents:
diff changeset
192 FilenameTok (token) const Token The token in ParentFile that indicates the skipped file.
anatofuz
parents:
diff changeset
193 FileType (C_User|C_System|C_ExternCSystem) SrcMgr::CharacteristicKind The file type.
anatofuz
parents:
diff changeset
194 ============== ================================================== ============================== ========================================================
anatofuz
parents:
diff changeset
195
anatofuz
parents:
diff changeset
196 Example:::
anatofuz
parents:
diff changeset
197
anatofuz
parents:
diff changeset
198 - Callback: FileSkipped
anatofuz
parents:
diff changeset
199 ParentFile: "/path/filename.h"
anatofuz
parents:
diff changeset
200 FilenameTok: "filename.h"
anatofuz
parents:
diff changeset
201 FileType: C_User
anatofuz
parents:
diff changeset
202
anatofuz
parents:
diff changeset
203 `FileNotFound <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a3045151545f987256bfa8d978916ef00>`_ Callback
anatofuz
parents:
diff changeset
204 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
205
anatofuz
parents:
diff changeset
206 FileNotFound is called when an inclusion directive results in a file-not-found error.
anatofuz
parents:
diff changeset
207
anatofuz
parents:
diff changeset
208 Argument descriptions:
anatofuz
parents:
diff changeset
209
anatofuz
parents:
diff changeset
210 ============== ================================================== ============================== =====================================================================================================================================
anatofuz
parents:
diff changeset
211 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
212 ============== ================================================== ============================== =====================================================================================================================================
anatofuz
parents:
diff changeset
213 FileName "(file)" StringRef The name of the file being included, as written in the source code.
anatofuz
parents:
diff changeset
214 RecoveryPath (path) SmallVectorImpl<char> If this client indicates that it can recover from this missing file, the client should set this as an additional header search patch.
anatofuz
parents:
diff changeset
215 ============== ================================================== ============================== =====================================================================================================================================
anatofuz
parents:
diff changeset
216
anatofuz
parents:
diff changeset
217 Example:::
anatofuz
parents:
diff changeset
218
anatofuz
parents:
diff changeset
219 - Callback: FileNotFound
anatofuz
parents:
diff changeset
220 FileName: "/path/filename.h"
anatofuz
parents:
diff changeset
221 RecoveryPath:
anatofuz
parents:
diff changeset
222
anatofuz
parents:
diff changeset
223 `InclusionDirective <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a557d9738c329793513a6f57d6b60de52>`_ Callback
anatofuz
parents:
diff changeset
224 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
225
anatofuz
parents:
diff changeset
226 InclusionDirective is called when an inclusion directive of any kind (#include</code>, #import</code>, etc.) has been processed, regardless of whether the inclusion will actually result in an inclusion.
anatofuz
parents:
diff changeset
227
anatofuz
parents:
diff changeset
228 Argument descriptions:
anatofuz
parents:
diff changeset
229
anatofuz
parents:
diff changeset
230 ============== ================================================== ============================== ============================================================================================================
anatofuz
parents:
diff changeset
231 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
232 ============== ================================================== ============================== ============================================================================================================
anatofuz
parents:
diff changeset
233 HashLoc "(file):(line):(col)" SourceLocation The location of the '#' that starts the inclusion directive.
anatofuz
parents:
diff changeset
234 IncludeTok (token) const Token The token that indicates the kind of inclusion directive, e.g., 'include' or 'import'.
anatofuz
parents:
diff changeset
235 FileName "(file)" StringRef The name of the file being included, as written in the source code.
anatofuz
parents:
diff changeset
236 IsAngled (true|false) bool Whether the file name was enclosed in angle brackets; otherwise, it was enclosed in quotes.
anatofuz
parents:
diff changeset
237 FilenameRange "(file)" CharSourceRange The character range of the quotes or angle brackets for the written file name.
anatofuz
parents:
diff changeset
238 File "(file)" const FileEntry The actual file that may be included by this inclusion directive.
anatofuz
parents:
diff changeset
239 SearchPath "(path)" StringRef Contains the search path which was used to find the file in the file system.
anatofuz
parents:
diff changeset
240 RelativePath "(path)" StringRef The path relative to SearchPath, at which the include file was found.
anatofuz
parents:
diff changeset
241 Imported ((module name)|(null)) const Module The module, whenever an inclusion directive was automatically turned into a module import or null otherwise.
anatofuz
parents:
diff changeset
242 ============== ================================================== ============================== ============================================================================================================
anatofuz
parents:
diff changeset
243
anatofuz
parents:
diff changeset
244 Example:::
anatofuz
parents:
diff changeset
245
anatofuz
parents:
diff changeset
246 - Callback: InclusionDirective
anatofuz
parents:
diff changeset
247 IncludeTok: include
anatofuz
parents:
diff changeset
248 FileName: "Input/Level1B.h"
anatofuz
parents:
diff changeset
249 IsAngled: false
anatofuz
parents:
diff changeset
250 FilenameRange: "Input/Level1B.h"
anatofuz
parents:
diff changeset
251 File: "D:/Clang/llvmnewmod/clang-tools-extra/test/pp-trace/Input/Level1B.h"
anatofuz
parents:
diff changeset
252 SearchPath: "D:/Clang/llvmnewmod/clang-tools-extra/test/pp-trace"
anatofuz
parents:
diff changeset
253 RelativePath: "Input/Level1B.h"
anatofuz
parents:
diff changeset
254 Imported: (null)
anatofuz
parents:
diff changeset
255
anatofuz
parents:
diff changeset
256 `moduleImport <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#af32dcf1b8b7c179c7fcd3e24e89830fe>`_ Callback
anatofuz
parents:
diff changeset
257 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
258
anatofuz
parents:
diff changeset
259 moduleImport is called when there was an explicit module-import syntax.
anatofuz
parents:
diff changeset
260
anatofuz
parents:
diff changeset
261 Argument descriptions:
anatofuz
parents:
diff changeset
262
anatofuz
parents:
diff changeset
263 ============== ================================================== ============================== ===========================================================
anatofuz
parents:
diff changeset
264 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
265 ============== ================================================== ============================== ===========================================================
anatofuz
parents:
diff changeset
266 ImportLoc "(file):(line):(col)" SourceLocation The location of import directive token.
anatofuz
parents:
diff changeset
267 Path "(path)" ModuleIdPath The identifiers (and their locations) of the module "path".
anatofuz
parents:
diff changeset
268 Imported ((module name)|(null)) const Module The imported module; can be null if importing failed.
anatofuz
parents:
diff changeset
269 ============== ================================================== ============================== ===========================================================
anatofuz
parents:
diff changeset
270
anatofuz
parents:
diff changeset
271 Example:::
anatofuz
parents:
diff changeset
272
anatofuz
parents:
diff changeset
273 - Callback: moduleImport
anatofuz
parents:
diff changeset
274 ImportLoc: "d:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-modules.cpp:4:2"
anatofuz
parents:
diff changeset
275 Path: [{Name: Level1B, Loc: "d:/Clang/llvmnewmod/clang-tools-extra/test/pp-trace/pp-trace-modules.cpp:4:9"}, {Name: Level2B, Loc: "d:/Clang/llvmnewmod/clang-tools-extra/test/pp-trace/pp-trace-modules.cpp:4:17"}]
anatofuz
parents:
diff changeset
276 Imported: Level2B
anatofuz
parents:
diff changeset
277
anatofuz
parents:
diff changeset
278 `EndOfMainFile <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a63e170d069e99bc1c9c7ea0f3bed8bcc>`_ Callback
anatofuz
parents:
diff changeset
279 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
280
anatofuz
parents:
diff changeset
281 EndOfMainFile is called when the end of the main file is reached.
anatofuz
parents:
diff changeset
282
anatofuz
parents:
diff changeset
283 Argument descriptions:
anatofuz
parents:
diff changeset
284
anatofuz
parents:
diff changeset
285 ============== ================================================== ============================== ======================
anatofuz
parents:
diff changeset
286 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
287 ============== ================================================== ============================== ======================
anatofuz
parents:
diff changeset
288 (no arguments)
anatofuz
parents:
diff changeset
289 ============== ================================================== ============================== ======================
anatofuz
parents:
diff changeset
290
anatofuz
parents:
diff changeset
291 Example:::
anatofuz
parents:
diff changeset
292
anatofuz
parents:
diff changeset
293 - Callback: EndOfMainFile
anatofuz
parents:
diff changeset
294
anatofuz
parents:
diff changeset
295 `Ident <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a3683f1d1fa513e9b6193d446a5cc2b66>`_ Callback
anatofuz
parents:
diff changeset
296 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
297
anatofuz
parents:
diff changeset
298 Ident is called when a #ident or #sccs directive is read.
anatofuz
parents:
diff changeset
299
anatofuz
parents:
diff changeset
300 Argument descriptions:
anatofuz
parents:
diff changeset
301
anatofuz
parents:
diff changeset
302 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
303 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
304 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
305 Loc "(file):(line):(col)" SourceLocation The location of the directive.
anatofuz
parents:
diff changeset
306 str (name) const std::string The text of the directive.
anatofuz
parents:
diff changeset
307 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
308
anatofuz
parents:
diff changeset
309 Example:::
anatofuz
parents:
diff changeset
310
anatofuz
parents:
diff changeset
311 - Callback: Ident
anatofuz
parents:
diff changeset
312 Loc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-ident.cpp:3:1"
anatofuz
parents:
diff changeset
313 str: "$Id$"
anatofuz
parents:
diff changeset
314
anatofuz
parents:
diff changeset
315 `PragmaDirective <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a0a2d7a72c62184b3cbde31fb62c6f2f7>`_ Callback
anatofuz
parents:
diff changeset
316 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
317
anatofuz
parents:
diff changeset
318 PragmaDirective is called when start reading any pragma directive.
anatofuz
parents:
diff changeset
319
anatofuz
parents:
diff changeset
320 Argument descriptions:
anatofuz
parents:
diff changeset
321
anatofuz
parents:
diff changeset
322 ============== ================================================== ============================== =================================
anatofuz
parents:
diff changeset
323 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
324 ============== ================================================== ============================== =================================
anatofuz
parents:
diff changeset
325 Loc "(file):(line):(col)" SourceLocation The location of the directive.
anatofuz
parents:
diff changeset
326 Introducer (PIK_HashPragma|PIK__Pragma|PIK___pragma) PragmaIntroducerKind The type of the pragma directive.
anatofuz
parents:
diff changeset
327 ============== ================================================== ============================== =================================
anatofuz
parents:
diff changeset
328
anatofuz
parents:
diff changeset
329 Example:::
anatofuz
parents:
diff changeset
330
anatofuz
parents:
diff changeset
331 - Callback: PragmaDirective
anatofuz
parents:
diff changeset
332 Loc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-pragma.cpp:3:1"
anatofuz
parents:
diff changeset
333 Introducer: PIK_HashPragma
anatofuz
parents:
diff changeset
334
anatofuz
parents:
diff changeset
335 `PragmaComment <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#ace0d940fc2c12ab76441466aab58dc37>`_ Callback
anatofuz
parents:
diff changeset
336 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
337
anatofuz
parents:
diff changeset
338 PragmaComment is called when a #pragma comment directive is read.
anatofuz
parents:
diff changeset
339
anatofuz
parents:
diff changeset
340 Argument descriptions:
anatofuz
parents:
diff changeset
341
anatofuz
parents:
diff changeset
342 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
343 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
344 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
345 Loc "(file):(line):(col)" SourceLocation The location of the directive.
anatofuz
parents:
diff changeset
346 Kind ((name)|(null)) const IdentifierInfo The comment kind symbol.
anatofuz
parents:
diff changeset
347 Str (message directive) const std::string The comment message directive.
anatofuz
parents:
diff changeset
348 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
349
anatofuz
parents:
diff changeset
350 Example:::
anatofuz
parents:
diff changeset
351
anatofuz
parents:
diff changeset
352 - Callback: PragmaComment
anatofuz
parents:
diff changeset
353 Loc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-pragma.cpp:3:1"
anatofuz
parents:
diff changeset
354 Kind: library
anatofuz
parents:
diff changeset
355 Str: kernel32.lib
anatofuz
parents:
diff changeset
356
anatofuz
parents:
diff changeset
357 `PragmaDetectMismatch <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#ab11158c9149fb8ad8af1903f4a6cd65d>`_ Callback
anatofuz
parents:
diff changeset
358 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
359
anatofuz
parents:
diff changeset
360 PragmaDetectMismatch is called when a #pragma detect_mismatch directive is read.
anatofuz
parents:
diff changeset
361
anatofuz
parents:
diff changeset
362 Argument descriptions:
anatofuz
parents:
diff changeset
363
anatofuz
parents:
diff changeset
364 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
365 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
366 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
367 Loc "(file):(line):(col)" SourceLocation The location of the directive.
anatofuz
parents:
diff changeset
368 Name "(name)" const std::string The name.
anatofuz
parents:
diff changeset
369 Value (string) const std::string The value.
anatofuz
parents:
diff changeset
370 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
371
anatofuz
parents:
diff changeset
372 Example:::
anatofuz
parents:
diff changeset
373
anatofuz
parents:
diff changeset
374 - Callback: PragmaDetectMismatch
anatofuz
parents:
diff changeset
375 Loc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-pragma.cpp:3:1"
anatofuz
parents:
diff changeset
376 Name: name
anatofuz
parents:
diff changeset
377 Value: value
anatofuz
parents:
diff changeset
378
anatofuz
parents:
diff changeset
379 `PragmaDebug <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a57cdccb6dcc07e926513ac3d5b121466>`_ Callback
anatofuz
parents:
diff changeset
380 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
381
anatofuz
parents:
diff changeset
382 PragmaDebug is called when a #pragma clang __debug directive is read.
anatofuz
parents:
diff changeset
383
anatofuz
parents:
diff changeset
384 Argument descriptions:
anatofuz
parents:
diff changeset
385
anatofuz
parents:
diff changeset
386 ============== ================================================== ============================== ================================
anatofuz
parents:
diff changeset
387 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
388 ============== ================================================== ============================== ================================
anatofuz
parents:
diff changeset
389 Loc "(file):(line):(col)" SourceLocation The location of the directive.
anatofuz
parents:
diff changeset
390 DebugType (string) StringRef Indicates type of debug message.
anatofuz
parents:
diff changeset
391 ============== ================================================== ============================== ================================
anatofuz
parents:
diff changeset
392
anatofuz
parents:
diff changeset
393 Example:::
anatofuz
parents:
diff changeset
394
anatofuz
parents:
diff changeset
395 - Callback: PragmaDebug
anatofuz
parents:
diff changeset
396 Loc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-pragma.cpp:3:1"
anatofuz
parents:
diff changeset
397 DebugType: warning
anatofuz
parents:
diff changeset
398
anatofuz
parents:
diff changeset
399 `PragmaMessage <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#abb42935d9a9fd8e2c4f51cfdc4ea2ae1>`_ Callback
anatofuz
parents:
diff changeset
400 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
401
anatofuz
parents:
diff changeset
402 PragmaMessage is called when a #pragma message directive is read.
anatofuz
parents:
diff changeset
403
anatofuz
parents:
diff changeset
404 Argument descriptions:
anatofuz
parents:
diff changeset
405
anatofuz
parents:
diff changeset
406 ============== ================================================== ============================== =======================================
anatofuz
parents:
diff changeset
407 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
408 ============== ================================================== ============================== =======================================
anatofuz
parents:
diff changeset
409 Loc "(file):(line):(col)" SourceLocation The location of the directive.
anatofuz
parents:
diff changeset
410 Namespace (name) StringRef The namespace of the message directive.
anatofuz
parents:
diff changeset
411 Kind (PMK_Message|PMK_Warning|PMK_Error) PPCallbacks::PragmaMessageKind The type of the message directive.
anatofuz
parents:
diff changeset
412 Str (string) StringRef The text of the message directive.
anatofuz
parents:
diff changeset
413 ============== ================================================== ============================== =======================================
anatofuz
parents:
diff changeset
414
anatofuz
parents:
diff changeset
415 Example:::
anatofuz
parents:
diff changeset
416
anatofuz
parents:
diff changeset
417 - Callback: PragmaMessage
anatofuz
parents:
diff changeset
418 Loc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-pragma.cpp:3:1"
anatofuz
parents:
diff changeset
419 Namespace: "GCC"
anatofuz
parents:
diff changeset
420 Kind: PMK_Message
anatofuz
parents:
diff changeset
421 Str: The message text.
anatofuz
parents:
diff changeset
422
anatofuz
parents:
diff changeset
423 `PragmaDiagnosticPush <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a0f3ff19762baa38fe6c5c58022d32979>`_ Callback
anatofuz
parents:
diff changeset
424 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
425
anatofuz
parents:
diff changeset
426 PragmaDiagnosticPush is called when a #pragma gcc diagnostic push directive is read.
anatofuz
parents:
diff changeset
427
anatofuz
parents:
diff changeset
428 Argument descriptions:
anatofuz
parents:
diff changeset
429
anatofuz
parents:
diff changeset
430 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
431 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
432 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
433 Loc "(file):(line):(col)" SourceLocation The location of the directive.
anatofuz
parents:
diff changeset
434 Namespace (name) StringRef Namespace name.
anatofuz
parents:
diff changeset
435 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
436
anatofuz
parents:
diff changeset
437 Example:::
anatofuz
parents:
diff changeset
438
anatofuz
parents:
diff changeset
439 - Callback: PragmaDiagnosticPush
anatofuz
parents:
diff changeset
440 Loc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-pragma.cpp:3:1"
anatofuz
parents:
diff changeset
441 Namespace: "GCC"
anatofuz
parents:
diff changeset
442
anatofuz
parents:
diff changeset
443 `PragmaDiagnosticPop <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#ac94d789873122221fba8d76f6c5ea45e>`_ Callback
anatofuz
parents:
diff changeset
444 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
445
anatofuz
parents:
diff changeset
446 PragmaDiagnosticPop is called when a #pragma gcc diagnostic pop directive is read.
anatofuz
parents:
diff changeset
447
anatofuz
parents:
diff changeset
448 Argument descriptions:
anatofuz
parents:
diff changeset
449
anatofuz
parents:
diff changeset
450 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
451 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
452 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
453 Loc "(file):(line):(col)" SourceLocation The location of the directive.
anatofuz
parents:
diff changeset
454 Namespace (name) StringRef Namespace name.
anatofuz
parents:
diff changeset
455 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
456
anatofuz
parents:
diff changeset
457 Example:::
anatofuz
parents:
diff changeset
458
anatofuz
parents:
diff changeset
459 - Callback: PragmaDiagnosticPop
anatofuz
parents:
diff changeset
460 Loc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-pragma.cpp:3:1"
anatofuz
parents:
diff changeset
461 Namespace: "GCC"
anatofuz
parents:
diff changeset
462
anatofuz
parents:
diff changeset
463 `PragmaDiagnostic <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#afe7938f38a83cb7b4b25a13edfdd7bdd>`_ Callback
anatofuz
parents:
diff changeset
464 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
465
anatofuz
parents:
diff changeset
466 PragmaDiagnostic is called when a #pragma gcc diagnostic directive is read.
anatofuz
parents:
diff changeset
467
anatofuz
parents:
diff changeset
468 Argument descriptions:
anatofuz
parents:
diff changeset
469
anatofuz
parents:
diff changeset
470 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
471 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
472 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
473 Loc "(file):(line):(col)" SourceLocation The location of the directive.
anatofuz
parents:
diff changeset
474 Namespace (name) StringRef Namespace name.
anatofuz
parents:
diff changeset
475 mapping (0|MAP_IGNORE|MAP_WARNING|MAP_ERROR|MAP_FATAL) diag::Severity Mapping type.
anatofuz
parents:
diff changeset
476 Str (string) StringRef Warning/error name.
anatofuz
parents:
diff changeset
477 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
478
anatofuz
parents:
diff changeset
479 Example:::
anatofuz
parents:
diff changeset
480
anatofuz
parents:
diff changeset
481 - Callback: PragmaDiagnostic
anatofuz
parents:
diff changeset
482 Loc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-pragma.cpp:3:1"
anatofuz
parents:
diff changeset
483 Namespace: "GCC"
anatofuz
parents:
diff changeset
484 mapping: MAP_WARNING
anatofuz
parents:
diff changeset
485 Str: WarningName
anatofuz
parents:
diff changeset
486
anatofuz
parents:
diff changeset
487 `PragmaOpenCLExtension <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a92a20a21fadbab4e2c788f4e27fe07e7>`_ Callback
anatofuz
parents:
diff changeset
488 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
489
anatofuz
parents:
diff changeset
490 PragmaOpenCLExtension is called when OpenCL extension is either disabled or enabled with a pragma.
anatofuz
parents:
diff changeset
491
anatofuz
parents:
diff changeset
492 Argument descriptions:
anatofuz
parents:
diff changeset
493
anatofuz
parents:
diff changeset
494 ============== ================================================== ============================== ==========================
anatofuz
parents:
diff changeset
495 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
496 ============== ================================================== ============================== ==========================
anatofuz
parents:
diff changeset
497 NameLoc "(file):(line):(col)" SourceLocation The location of the name.
anatofuz
parents:
diff changeset
498 Name (name) const IdentifierInfo Name symbol.
anatofuz
parents:
diff changeset
499 StateLoc "(file):(line):(col)" SourceLocation The location of the state.
anatofuz
parents:
diff changeset
500 State (1|0) unsigned Enabled/disabled state.
anatofuz
parents:
diff changeset
501 ============== ================================================== ============================== ==========================
anatofuz
parents:
diff changeset
502
anatofuz
parents:
diff changeset
503 Example:::
anatofuz
parents:
diff changeset
504
anatofuz
parents:
diff changeset
505 - Callback: PragmaOpenCLExtension
anatofuz
parents:
diff changeset
506 NameLoc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-pragma.cpp:3:10"
anatofuz
parents:
diff changeset
507 Name: Name
anatofuz
parents:
diff changeset
508 StateLoc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-pragma.cpp:3:18"
anatofuz
parents:
diff changeset
509 State: 1
anatofuz
parents:
diff changeset
510
anatofuz
parents:
diff changeset
511 `PragmaWarning <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#aa17169d25fa1cf0a6992fc944d1d8730>`_ Callback
anatofuz
parents:
diff changeset
512 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
513
anatofuz
parents:
diff changeset
514 PragmaWarning is called when a #pragma warning directive is read.
anatofuz
parents:
diff changeset
515
anatofuz
parents:
diff changeset
516 Argument descriptions:
anatofuz
parents:
diff changeset
517
anatofuz
parents:
diff changeset
518 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
519 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
520 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
521 Loc "(file):(line):(col)" SourceLocation The location of the directive.
anatofuz
parents:
diff changeset
522 WarningSpec (string) StringRef The warning specifier.
anatofuz
parents:
diff changeset
523 Ids [(number)[, ...]] ArrayRef<int> The warning numbers.
anatofuz
parents:
diff changeset
524 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
525
anatofuz
parents:
diff changeset
526 Example:::
anatofuz
parents:
diff changeset
527
anatofuz
parents:
diff changeset
528 - Callback: PragmaWarning
anatofuz
parents:
diff changeset
529 Loc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-pragma.cpp:3:1"
anatofuz
parents:
diff changeset
530 WarningSpec: disable
anatofuz
parents:
diff changeset
531 Ids: 1,2,3
anatofuz
parents:
diff changeset
532
anatofuz
parents:
diff changeset
533 `PragmaWarningPush <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#ae5626ef70502687a859f323a809ed0b6>`_ Callback
anatofuz
parents:
diff changeset
534 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
535
anatofuz
parents:
diff changeset
536 PragmaWarningPush is called when a #pragma warning(push) directive is read.
anatofuz
parents:
diff changeset
537
anatofuz
parents:
diff changeset
538 Argument descriptions:
anatofuz
parents:
diff changeset
539
anatofuz
parents:
diff changeset
540 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
541 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
542 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
543 Loc "(file):(line):(col)" SourceLocation The location of the directive.
anatofuz
parents:
diff changeset
544 Level (number) int Warning level.
anatofuz
parents:
diff changeset
545 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
546
anatofuz
parents:
diff changeset
547 Example:::
anatofuz
parents:
diff changeset
548
anatofuz
parents:
diff changeset
549 - Callback: PragmaWarningPush
anatofuz
parents:
diff changeset
550 Loc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-pragma.cpp:3:1"
anatofuz
parents:
diff changeset
551 Level: 1
anatofuz
parents:
diff changeset
552
anatofuz
parents:
diff changeset
553 `PragmaWarningPop <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#ac98d502af8811b8a6e7342d7cd2b3b95>`_ Callback
anatofuz
parents:
diff changeset
554 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
555
anatofuz
parents:
diff changeset
556 PragmaWarningPop is called when a #pragma warning(pop) directive is read.
anatofuz
parents:
diff changeset
557
anatofuz
parents:
diff changeset
558 Argument descriptions:
anatofuz
parents:
diff changeset
559
anatofuz
parents:
diff changeset
560 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
561 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
562 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
563 Loc "(file):(line):(col)" SourceLocation The location of the directive.
anatofuz
parents:
diff changeset
564 ============== ================================================== ============================== ==============================
anatofuz
parents:
diff changeset
565
anatofuz
parents:
diff changeset
566 Example:::
anatofuz
parents:
diff changeset
567
anatofuz
parents:
diff changeset
568 - Callback: PragmaWarningPop
anatofuz
parents:
diff changeset
569 Loc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-pragma.cpp:3:1"
anatofuz
parents:
diff changeset
570
anatofuz
parents:
diff changeset
571 `MacroExpands <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a9bc725209d3a071ea649144ab996d515>`_ Callback
anatofuz
parents:
diff changeset
572 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
573
anatofuz
parents:
diff changeset
574 MacroExpands is called when ::HandleMacroExpandedIdentifier when a macro invocation is found.
anatofuz
parents:
diff changeset
575
anatofuz
parents:
diff changeset
576 Argument descriptions:
anatofuz
parents:
diff changeset
577
anatofuz
parents:
diff changeset
578 ============== ================================================== ============================== ======================================================================================================
anatofuz
parents:
diff changeset
579 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
580 ============== ================================================== ============================== ======================================================================================================
anatofuz
parents:
diff changeset
581 MacroNameTok (token) const Token The macro name token.
anatofuz
parents:
diff changeset
582 MacroDirective (MD_Define|MD_Undefine|MD_Visibility) const MacroDirective The kind of macro directive from the MacroDirective structure.
anatofuz
parents:
diff changeset
583 Range ["(file):(line):(col)", "(file):(line):(col)"] SourceRange The source range for the expansion.
anatofuz
parents:
diff changeset
584 Args [(name)|(number)|<(token name)>[, ...]] const MacroArgs The argument tokens. Names and numbers are literal, everything else is of the form '<' tokenName '>'.
anatofuz
parents:
diff changeset
585 ============== ================================================== ============================== ======================================================================================================
anatofuz
parents:
diff changeset
586
anatofuz
parents:
diff changeset
587 Example:::
anatofuz
parents:
diff changeset
588
anatofuz
parents:
diff changeset
589 - Callback: MacroExpands
anatofuz
parents:
diff changeset
590 MacroNameTok: X_IMPL
anatofuz
parents:
diff changeset
591 MacroDirective: MD_Define
anatofuz
parents:
diff changeset
592 Range: [(nonfile), (nonfile)]
anatofuz
parents:
diff changeset
593 Args: [a <plus> y, b]
anatofuz
parents:
diff changeset
594
anatofuz
parents:
diff changeset
595 `MacroDefined <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a8448fc9f96f22ad1b93ff393cffc5a76>`_ Callback
anatofuz
parents:
diff changeset
596 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
597
anatofuz
parents:
diff changeset
598 MacroDefined is called when a macro definition is seen.
anatofuz
parents:
diff changeset
599
anatofuz
parents:
diff changeset
600 Argument descriptions:
anatofuz
parents:
diff changeset
601
anatofuz
parents:
diff changeset
602 ============== ================================================== ============================== ==============================================================
anatofuz
parents:
diff changeset
603 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
604 ============== ================================================== ============================== ==============================================================
anatofuz
parents:
diff changeset
605 MacroNameTok (token) const Token The macro name token.
anatofuz
parents:
diff changeset
606 MacroDirective (MD_Define|MD_Undefine|MD_Visibility) const MacroDirective The kind of macro directive from the MacroDirective structure.
anatofuz
parents:
diff changeset
607 ============== ================================================== ============================== ==============================================================
anatofuz
parents:
diff changeset
608
anatofuz
parents:
diff changeset
609 Example:::
anatofuz
parents:
diff changeset
610
anatofuz
parents:
diff changeset
611 - Callback: MacroDefined
anatofuz
parents:
diff changeset
612 MacroNameTok: X_IMPL
anatofuz
parents:
diff changeset
613 MacroDirective: MD_Define
anatofuz
parents:
diff changeset
614
anatofuz
parents:
diff changeset
615 `MacroUndefined <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#acb80fc6171a839db8e290945bf2c9d7a>`_ Callback
anatofuz
parents:
diff changeset
616 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
617
anatofuz
parents:
diff changeset
618 MacroUndefined is called when a macro #undef is seen.
anatofuz
parents:
diff changeset
619
anatofuz
parents:
diff changeset
620 Argument descriptions:
anatofuz
parents:
diff changeset
621
anatofuz
parents:
diff changeset
622 ============== ================================================== ============================== ==============================================================
anatofuz
parents:
diff changeset
623 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
624 ============== ================================================== ============================== ==============================================================
anatofuz
parents:
diff changeset
625 MacroNameTok (token) const Token The macro name token.
anatofuz
parents:
diff changeset
626 MacroDirective (MD_Define|MD_Undefine|MD_Visibility) const MacroDirective The kind of macro directive from the MacroDirective structure.
anatofuz
parents:
diff changeset
627 ============== ================================================== ============================== ==============================================================
anatofuz
parents:
diff changeset
628
anatofuz
parents:
diff changeset
629 Example:::
anatofuz
parents:
diff changeset
630
anatofuz
parents:
diff changeset
631 - Callback: MacroUndefined
anatofuz
parents:
diff changeset
632 MacroNameTok: X_IMPL
anatofuz
parents:
diff changeset
633 MacroDirective: MD_Define
anatofuz
parents:
diff changeset
634
anatofuz
parents:
diff changeset
635 `Defined <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a3cc2a644533d0e4088a13d2baf90db94>`_ Callback
anatofuz
parents:
diff changeset
636 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
637
anatofuz
parents:
diff changeset
638 Defined is called when the 'defined' operator is seen.
anatofuz
parents:
diff changeset
639
anatofuz
parents:
diff changeset
640 Argument descriptions:
anatofuz
parents:
diff changeset
641
anatofuz
parents:
diff changeset
642 ============== ================================================== ============================== ==============================================================
anatofuz
parents:
diff changeset
643 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
644 ============== ================================================== ============================== ==============================================================
anatofuz
parents:
diff changeset
645 MacroNameTok (token) const Token The macro name token.
anatofuz
parents:
diff changeset
646 MacroDirective (MD_Define|MD_Undefine|MD_Visibility) const MacroDirective The kind of macro directive from the MacroDirective structure.
anatofuz
parents:
diff changeset
647 Range ["(file):(line):(col)", "(file):(line):(col)"] SourceRange The source range for the directive.
anatofuz
parents:
diff changeset
648 ============== ================================================== ============================== ==============================================================
anatofuz
parents:
diff changeset
649
anatofuz
parents:
diff changeset
650 Example:::
anatofuz
parents:
diff changeset
651
anatofuz
parents:
diff changeset
652 - Callback: Defined
anatofuz
parents:
diff changeset
653 MacroNameTok: MACRO
anatofuz
parents:
diff changeset
654 MacroDirective: (null)
anatofuz
parents:
diff changeset
655 Range: ["D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-macro.cpp:8:5", "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-macro.cpp:8:19"]
anatofuz
parents:
diff changeset
656
anatofuz
parents:
diff changeset
657 `SourceRangeSkipped <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#abdb4ebe11610f079ac33515965794b46>`_ Callback
anatofuz
parents:
diff changeset
658 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
659
anatofuz
parents:
diff changeset
660 SourceRangeSkipped is called when a source range is skipped.
anatofuz
parents:
diff changeset
661
anatofuz
parents:
diff changeset
662 Argument descriptions:
anatofuz
parents:
diff changeset
663
anatofuz
parents:
diff changeset
664 ============== ================================================== ============================== =========================
anatofuz
parents:
diff changeset
665 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
666 ============== ================================================== ============================== =========================
anatofuz
parents:
diff changeset
667 Range ["(file):(line):(col)", "(file):(line):(col)"] SourceRange The source range skipped.
anatofuz
parents:
diff changeset
668 ============== ================================================== ============================== =========================
anatofuz
parents:
diff changeset
669
anatofuz
parents:
diff changeset
670 Example:::
anatofuz
parents:
diff changeset
671
anatofuz
parents:
diff changeset
672 - Callback: SourceRangeSkipped
anatofuz
parents:
diff changeset
673 Range: [":/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-macro.cpp:8:2", ":/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-macro.cpp:9:2"]
anatofuz
parents:
diff changeset
674
anatofuz
parents:
diff changeset
675 `If <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a645edcb0d6becbc6f256f02fd1287778>`_ Callback
anatofuz
parents:
diff changeset
676 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
677
anatofuz
parents:
diff changeset
678 If is called when an #if is seen.
anatofuz
parents:
diff changeset
679
anatofuz
parents:
diff changeset
680 Argument descriptions:
anatofuz
parents:
diff changeset
681
anatofuz
parents:
diff changeset
682 ============== ================================================== ============================== ===================================
anatofuz
parents:
diff changeset
683 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
684 ============== ================================================== ============================== ===================================
anatofuz
parents:
diff changeset
685 Loc "(file):(line):(col)" SourceLocation The location of the directive.
anatofuz
parents:
diff changeset
686 ConditionRange ["(file):(line):(col)", "(file):(line):(col)"] SourceRange The source range for the condition.
anatofuz
parents:
diff changeset
687 ConditionValue (true|false) bool The condition value.
anatofuz
parents:
diff changeset
688 ============== ================================================== ============================== ===================================
anatofuz
parents:
diff changeset
689
anatofuz
parents:
diff changeset
690 Example:::
anatofuz
parents:
diff changeset
691
anatofuz
parents:
diff changeset
692 - Callback: If
anatofuz
parents:
diff changeset
693 Loc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-macro.cpp:8:2"
anatofuz
parents:
diff changeset
694 ConditionRange: ["D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-macro.cpp:8:4", "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-macro.cpp:9:1"]
anatofuz
parents:
diff changeset
695 ConditionValue: false
anatofuz
parents:
diff changeset
696
anatofuz
parents:
diff changeset
697 `Elif <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a180c9e106a28d60a6112e16b1bb8302a>`_ Callback
anatofuz
parents:
diff changeset
698 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
699
anatofuz
parents:
diff changeset
700 Elif is called when an #elif is seen.
anatofuz
parents:
diff changeset
701
anatofuz
parents:
diff changeset
702 Argument descriptions:
anatofuz
parents:
diff changeset
703
anatofuz
parents:
diff changeset
704 ============== ================================================== ============================== ===================================
anatofuz
parents:
diff changeset
705 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
706 ============== ================================================== ============================== ===================================
anatofuz
parents:
diff changeset
707 Loc "(file):(line):(col)" SourceLocation The location of the directive.
anatofuz
parents:
diff changeset
708 ConditionRange ["(file):(line):(col)", "(file):(line):(col)"] SourceRange The source range for the condition.
anatofuz
parents:
diff changeset
709 ConditionValue (true|false) bool The condition value.
anatofuz
parents:
diff changeset
710 IfLoc "(file):(line):(col)" SourceLocation The location of the directive.
anatofuz
parents:
diff changeset
711 ============== ================================================== ============================== ===================================
anatofuz
parents:
diff changeset
712
anatofuz
parents:
diff changeset
713 Example:::
anatofuz
parents:
diff changeset
714
anatofuz
parents:
diff changeset
715 - Callback: Elif
anatofuz
parents:
diff changeset
716 Loc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-macro.cpp:10:2"
anatofuz
parents:
diff changeset
717 ConditionRange: ["D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-macro.cpp:10:4", "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-macro.cpp:11:1"]
anatofuz
parents:
diff changeset
718 ConditionValue: false
anatofuz
parents:
diff changeset
719 IfLoc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-macro.cpp:8:2"
anatofuz
parents:
diff changeset
720
anatofuz
parents:
diff changeset
721 `Ifdef <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a0ce79575dda307784fd51a6dd4eec33d>`_ Callback
anatofuz
parents:
diff changeset
722 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
723
anatofuz
parents:
diff changeset
724 Ifdef is called when an #ifdef is seen.
anatofuz
parents:
diff changeset
725
anatofuz
parents:
diff changeset
726 Argument descriptions:
anatofuz
parents:
diff changeset
727
anatofuz
parents:
diff changeset
728 ============== ================================================== ============================== ==============================================================
anatofuz
parents:
diff changeset
729 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
730 ============== ================================================== ============================== ==============================================================
anatofuz
parents:
diff changeset
731 Loc "(file):(line):(col)" SourceLocation The location of the directive.
anatofuz
parents:
diff changeset
732 MacroNameTok (token) const Token The macro name token.
anatofuz
parents:
diff changeset
733 MacroDirective (MD_Define|MD_Undefine|MD_Visibility) const MacroDirective The kind of macro directive from the MacroDirective structure.
anatofuz
parents:
diff changeset
734 ============== ================================================== ============================== ==============================================================
anatofuz
parents:
diff changeset
735
anatofuz
parents:
diff changeset
736 Example:::
anatofuz
parents:
diff changeset
737
anatofuz
parents:
diff changeset
738 - Callback: Ifdef
anatofuz
parents:
diff changeset
739 Loc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-conditional.cpp:3:1"
anatofuz
parents:
diff changeset
740 MacroNameTok: MACRO
anatofuz
parents:
diff changeset
741 MacroDirective: MD_Define
anatofuz
parents:
diff changeset
742
anatofuz
parents:
diff changeset
743 `Ifndef <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a767af69f1cdcc4cd880fa2ebf77ad3ad>`_ Callback
anatofuz
parents:
diff changeset
744 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
745
anatofuz
parents:
diff changeset
746 Ifndef is called when an #ifndef is seen.
anatofuz
parents:
diff changeset
747
anatofuz
parents:
diff changeset
748 Argument descriptions:
anatofuz
parents:
diff changeset
749
anatofuz
parents:
diff changeset
750 ============== ================================================== ============================== ==============================================================
anatofuz
parents:
diff changeset
751 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
752 ============== ================================================== ============================== ==============================================================
anatofuz
parents:
diff changeset
753 Loc "(file):(line):(col)" SourceLocation The location of the directive.
anatofuz
parents:
diff changeset
754 MacroNameTok (token) const Token The macro name token.
anatofuz
parents:
diff changeset
755 MacroDirective (MD_Define|MD_Undefine|MD_Visibility) const MacroDirective The kind of macro directive from the MacroDirective structure.
anatofuz
parents:
diff changeset
756 ============== ================================================== ============================== ==============================================================
anatofuz
parents:
diff changeset
757
anatofuz
parents:
diff changeset
758 Example:::
anatofuz
parents:
diff changeset
759
anatofuz
parents:
diff changeset
760 - Callback: Ifndef
anatofuz
parents:
diff changeset
761 Loc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-conditional.cpp:3:1"
anatofuz
parents:
diff changeset
762 MacroNameTok: MACRO
anatofuz
parents:
diff changeset
763 MacroDirective: MD_Define
anatofuz
parents:
diff changeset
764
anatofuz
parents:
diff changeset
765 `Else <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#ad57f91b6d9c3cbcca326a2bfb49e0314>`_ Callback
anatofuz
parents:
diff changeset
766 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
767
anatofuz
parents:
diff changeset
768 Else is called when an #else is seen.
anatofuz
parents:
diff changeset
769
anatofuz
parents:
diff changeset
770 Argument descriptions:
anatofuz
parents:
diff changeset
771
anatofuz
parents:
diff changeset
772 ============== ================================================== ============================== ===================================
anatofuz
parents:
diff changeset
773 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
774 ============== ================================================== ============================== ===================================
anatofuz
parents:
diff changeset
775 Loc "(file):(line):(col)" SourceLocation The location of the else directive.
anatofuz
parents:
diff changeset
776 IfLoc "(file):(line):(col)" SourceLocation The location of the if directive.
anatofuz
parents:
diff changeset
777 ============== ================================================== ============================== ===================================
anatofuz
parents:
diff changeset
778
anatofuz
parents:
diff changeset
779 Example:::
anatofuz
parents:
diff changeset
780
anatofuz
parents:
diff changeset
781 - Callback: Else
anatofuz
parents:
diff changeset
782 Loc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-macro.cpp:10:2"
anatofuz
parents:
diff changeset
783 IfLoc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-macro.cpp:8:2"
anatofuz
parents:
diff changeset
784
anatofuz
parents:
diff changeset
785 `Endif <https://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#afc62ca1401125f516d58b1629a2093ce>`_ Callback
anatofuz
parents:
diff changeset
786 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
anatofuz
parents:
diff changeset
787
anatofuz
parents:
diff changeset
788 Endif is called when an #endif is seen.
anatofuz
parents:
diff changeset
789
anatofuz
parents:
diff changeset
790 Argument descriptions:
anatofuz
parents:
diff changeset
791
anatofuz
parents:
diff changeset
792 ============== ================================================== ============================== ====================================
anatofuz
parents:
diff changeset
793 Argument Name Argument Value Syntax Clang C++ Type Description
anatofuz
parents:
diff changeset
794 ============== ================================================== ============================== ====================================
anatofuz
parents:
diff changeset
795 Loc "(file):(line):(col)" SourceLocation The location of the endif directive.
anatofuz
parents:
diff changeset
796 IfLoc "(file):(line):(col)" SourceLocation The location of the if directive.
anatofuz
parents:
diff changeset
797 ============== ================================================== ============================== ====================================
anatofuz
parents:
diff changeset
798
anatofuz
parents:
diff changeset
799 Example:::
anatofuz
parents:
diff changeset
800
anatofuz
parents:
diff changeset
801 - Callback: Endif
anatofuz
parents:
diff changeset
802 Loc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-macro.cpp:10:2"
anatofuz
parents:
diff changeset
803 IfLoc: "D:/Clang/llvm/clang-tools-extra/test/pp-trace/pp-trace-macro.cpp:8:2"
anatofuz
parents:
diff changeset
804
anatofuz
parents:
diff changeset
805 Building pp-trace
anatofuz
parents:
diff changeset
806 =================
anatofuz
parents:
diff changeset
807
anatofuz
parents:
diff changeset
808 To build from source:
anatofuz
parents:
diff changeset
809
anatofuz
parents:
diff changeset
810 1. Read `Getting Started with the LLVM System`_ and `Clang Tools
anatofuz
parents:
diff changeset
811 Documentation`_ for information on getting sources for LLVM, Clang, and
anatofuz
parents:
diff changeset
812 Clang Extra Tools.
anatofuz
parents:
diff changeset
813
anatofuz
parents:
diff changeset
814 2. `Getting Started with the LLVM System`_ and `Building LLVM with CMake`_ give
anatofuz
parents:
diff changeset
815 directions for how to build. With sources all checked out into the
anatofuz
parents:
diff changeset
816 right place the LLVM build will build Clang Extra Tools and their
anatofuz
parents:
diff changeset
817 dependencies automatically.
anatofuz
parents:
diff changeset
818
anatofuz
parents:
diff changeset
819 * If using CMake, you can also use the ``pp-trace`` target to build
anatofuz
parents:
diff changeset
820 just the pp-trace tool and its dependencies.
anatofuz
parents:
diff changeset
821
anatofuz
parents:
diff changeset
822 .. _Getting Started with the LLVM System: https://llvm.org/docs/GettingStarted.html
anatofuz
parents:
diff changeset
823 .. _Building LLVM with CMake: https://llvm.org/docs/CMake.html
anatofuz
parents:
diff changeset
824 .. _Clang Tools Documentation: https://clang.llvm.org/docs/ClangTools.html
anatofuz
parents:
diff changeset
825