clang 24.0.0git
FrontendOptions.h
Go to the documentation of this file.
1//===- FrontendOptions.h ----------------------------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLVM_CLANG_FRONTEND_FRONTENDOPTIONS_H
10#define LLVM_CLANG_FRONTEND_FRONTENDOPTIONS_H
11
17#include "llvm/ADT/StringRef.h"
18#include "llvm/Support/Compiler.h"
19#include "llvm/Support/MemoryBuffer.h"
20#include <cassert>
21#include <map>
22#include <memory>
23#include <optional>
24#include <string>
25#include <vector>
26
27namespace llvm {
28
29class MemoryBuffer;
30
31} // namespace llvm
32
33namespace clang {
34
35namespace frontend {
36
38 /// Parse ASTs and list Decl nodes.
40
41 /// Parse ASTs and dump them.
43
44 /// Parse ASTs and print them.
46
47 /// Parse ASTs and view them in Graphviz.
49
50 /// Dump the compiler configuration.
52
53 /// Dump out raw tokens.
55
56 /// Dump out preprocessed tokens.
58
59 /// Emit a .s file.
61
62 /// Emit a .bc file.
64
65 /// Translate input source into HTML.
67
68 /// Emit a .cir file
70
71 /// Emit a .ll file.
73
74 /// Generate LLVM IR, but do not emit anything.
76
77 /// Generate machine code, but don't emit anything.
79
80 /// Emit a .o file.
82
83 // Extract API information
85
86 /// Parse and apply any fixits to the source.
88
89 /// Generate pre-compiled module from a module map.
91
92 /// Generate pre-compiled module from a standard C++ module interface unit.
94
95 /// Generate reduced module interface for a standard C++ module interface
96 /// unit.
98
99 /// Generate a C++20 header unit module from a header file.
101
102 /// Generate pre-compiled header.
104
105 /// Generate Interface Stub Files.
107
108 /// Only execute frontend initialization.
110
111 /// Dump information about a module file.
113
114 /// Load and verify that a PCH file is usable.
116
117 /// Parse and perform semantic analysis.
119
120 /// Run a plugin action, \see ActionName.
122
123 /// Print the "preamble" of the input file
125
126 /// -E mode.
128
129 /// Expand macros but not \#includes.
131
132 /// ObjC->C Rewriter.
134
135 /// Rewriter playground
137
138 /// Run one or more source code analyses.
140
141 /// Just lex, no output.
143
144 /// Print the output of the dependency directives source minimizer.
146};
147
148} // namespace frontend
149
150/// The kind of a file that we've been handed as an input.
152public:
153 /// The input file format.
159
160 // If we are building a header unit, what kind it is; this affects whether
161 // we look for the file in the user or system include search paths before
162 // flagging a missing input.
169
170private:
171 Language Lang;
172 LLVM_PREFERRED_TYPE(Format)
173 unsigned Fmt : 3;
174 LLVM_PREFERRED_TYPE(bool)
175 unsigned Preprocessed : 1;
176 LLVM_PREFERRED_TYPE(HeaderUnitKind)
177 unsigned HeaderUnit : 3;
178 LLVM_PREFERRED_TYPE(bool)
179 unsigned IsHeader : 1;
180
181public:
183 bool PP = false, HeaderUnitKind HU = HeaderUnit_None,
184 bool HD = false)
185 : Lang(L), Fmt(F), Preprocessed(PP), HeaderUnit(HU), IsHeader(HD) {}
186
187 Language getLanguage() const { return static_cast<Language>(Lang); }
188 Format getFormat() const { return static_cast<Format>(Fmt); }
190 return static_cast<HeaderUnitKind>(HeaderUnit);
191 }
192 bool isPreprocessed() const { return Preprocessed; }
193 bool isHeader() const { return IsHeader; }
194 bool isHeaderUnit() const { return HeaderUnit != HeaderUnit_None; }
195
196 /// Is the input kind fully-unknown?
197 bool isUnknown() const { return Lang == Language::Unknown && Fmt == Source; }
198
199 /// Is the language of the input some dialect of Objective-C?
200 bool isObjectiveC() const {
201 return Lang == Language::ObjC || Lang == Language::ObjCXX;
202 }
203
206 isHeader());
207 }
208
211 getHeaderUnitKind(), true);
212 }
213
218
223};
224
225/// An input file for the front end.
227 /// The file name, or "-" to read from standard input.
228 std::string File;
229
230 /// The input, if it comes from a buffer rather than a file. This object
231 /// does not own the buffer, and the caller is responsible for ensuring
232 /// that it outlives any users.
233 std::optional<llvm::MemoryBufferRef> Buffer;
234
235 /// The kind of input, e.g., C source, AST file, LLVM IR.
236 InputKind Kind;
237
238 /// Whether we're dealing with a 'system' input (vs. a 'user' input).
239 bool IsSystem = false;
240
242
243public:
244 FrontendInputFile() = default;
245 FrontendInputFile(StringRef File, InputKind Kind, bool IsSystem = false)
246 : File(File.str()), Kind(Kind), IsSystem(IsSystem) {}
247 FrontendInputFile(llvm::MemoryBufferRef Buffer, InputKind Kind,
248 bool IsSystem = false)
249 : Buffer(Buffer), Kind(Kind), IsSystem(IsSystem) {}
250
251 InputKind getKind() const { return Kind; }
252 bool isSystem() const { return IsSystem; }
253
254 bool isEmpty() const { return File.empty() && Buffer == std::nullopt; }
255 bool isFile() const { return !isBuffer(); }
256 bool isBuffer() const { return Buffer != std::nullopt; }
257 bool isPreprocessed() const { return Kind.isPreprocessed(); }
258 bool isHeader() const { return Kind.isHeader(); }
260 return Kind.getHeaderUnitKind();
261 }
262
263 StringRef getFile() const {
264 assert(isFile());
265 return File;
266 }
267
268 llvm::MemoryBufferRef getBuffer() const {
269 assert(isBuffer());
270 return *Buffer;
271 }
272};
273
274/// FrontendOptions - Options for controlling the behavior of the frontend.
276public:
277 /// Disable memory freeing on exit.
278 LLVM_PREFERRED_TYPE(bool)
280
281 /// When generating PCH files, instruct the AST writer to create relocatable
282 /// PCH files.
283 LLVM_PREFERRED_TYPE(bool)
284 unsigned RelocatablePCH : 1;
285
286 /// Show the -help text.
287 LLVM_PREFERRED_TYPE(bool)
288 unsigned ShowHelp : 1;
289
290 /// Show frontend performance metrics and statistics.
291 LLVM_PREFERRED_TYPE(bool)
292 unsigned ShowStats : 1;
293
294 LLVM_PREFERRED_TYPE(bool)
295 unsigned AppendStats : 1;
296
297 /// print the supported cpus for the current target
298 LLVM_PREFERRED_TYPE(bool)
299 unsigned PrintSupportedCPUs : 1;
300
301 /// Print the supported extensions for the current target.
302 LLVM_PREFERRED_TYPE(bool)
304
305 /// Print the extensions enabled for the current target.
306 LLVM_PREFERRED_TYPE(bool)
308
309 /// Show the -version text.
310 LLVM_PREFERRED_TYPE(bool)
311 unsigned ShowVersion : 1;
312
313 /// Apply fixes even if there are unfixable errors.
314 LLVM_PREFERRED_TYPE(bool)
315 unsigned FixWhatYouCan : 1;
316
317 /// Apply fixes only for warnings.
318 LLVM_PREFERRED_TYPE(bool)
319 unsigned FixOnlyWarnings : 1;
320
321 /// Apply fixes and recompile.
322 LLVM_PREFERRED_TYPE(bool)
323 unsigned FixAndRecompile : 1;
324
325 /// Apply fixes to temporary files.
326 LLVM_PREFERRED_TYPE(bool)
327 unsigned FixToTemporaries : 1;
328
329 /// Skip over function bodies to speed up parsing in cases you do not need
330 /// them (e.g. with code completion).
331 LLVM_PREFERRED_TYPE(bool)
332 unsigned SkipFunctionBodies : 1;
333
334 /// Whether we can use the global module index if available.
335 LLVM_PREFERRED_TYPE(bool)
337
338 /// Whether we can generate the global module index if needed.
339 LLVM_PREFERRED_TYPE(bool)
341
342 /// Whether we include declaration dumps in AST dumps.
343 LLVM_PREFERRED_TYPE(bool)
344 unsigned ASTDumpDecls : 1;
345
346 /// Whether we deserialize all decls when forming AST dumps.
347 LLVM_PREFERRED_TYPE(bool)
348 unsigned ASTDumpAll : 1;
349
350 /// Whether we include lookup table dumps in AST dumps.
351 LLVM_PREFERRED_TYPE(bool)
352 unsigned ASTDumpLookups : 1;
353
354 /// Whether we include declaration type dumps in AST dumps.
355 LLVM_PREFERRED_TYPE(bool)
356 unsigned ASTDumpDeclTypes : 1;
357
358 /// Whether we are performing an implicit module build.
359 LLVM_PREFERRED_TYPE(bool)
361
362 /// Whether to use a filesystem lock when building implicit modules.
363 LLVM_PREFERRED_TYPE(bool)
365
366 /// Whether we should embed all used files into the PCM file.
367 LLVM_PREFERRED_TYPE(bool)
369
370 /// Whether timestamps should be written to the produced PCH file.
371 LLVM_PREFERRED_TYPE(bool)
372 unsigned IncludeTimestamps : 1;
373
374 /// Should a temporary file be used during compilation.
375 LLVM_PREFERRED_TYPE(bool)
376 unsigned UseTemporary : 1;
377
378 /// When using -emit-module, treat the modulemap as a system module.
379 LLVM_PREFERRED_TYPE(bool)
380 unsigned IsSystemModule : 1;
381
382 /// Output (and read) PCM files regardless of compiler errors.
383 LLVM_PREFERRED_TYPE(bool)
385
386 /// Whether to share the FileManager when building modules.
387 LLVM_PREFERRED_TYPE(bool)
389
390 /// Whether to emit symbol graph files as a side effect of compilation.
391 LLVM_PREFERRED_TYPE(bool)
392 unsigned EmitSymbolGraph : 1;
393
394 /// Whether to emit additional symbol graphs for extended modules.
395 LLVM_PREFERRED_TYPE(bool)
397
398 /// Whether to emit symbol labels for testing in generated symbol graphs
399 LLVM_PREFERRED_TYPE(bool)
401
402 /// Whether to emit symbol labels for testing in generated symbol graphs
403 LLVM_PREFERRED_TYPE(bool)
405
406 /// Whether to generate reduced BMI for C++20 named modules.
407 LLVM_PREFERRED_TYPE(bool)
408 unsigned GenReducedBMI : 1;
409
410 /// Use Clang IR pipeline to emit code
411 LLVM_PREFERRED_TYPE(bool)
412 unsigned UseClangIRPipeline : 1;
413
414 /// Disable Clang IR specific (CIR) passes
415 LLVM_PREFERRED_TYPE(bool)
417
418 /// Disable Clang IR (CIR) verifier
419 LLVM_PREFERRED_TYPE(bool)
421
422 /// Enable Clang IR (CIR) idiom recognizer
423 LLVM_PREFERRED_TYPE(bool)
425
426 /// Run the Clang IR (CIR) calling-convention lowering pass. A no-op on
427 /// targets whose calling convention is not yet implemented.
428 LLVM_PREFERRED_TYPE(bool)
430
431 /// Enable ClangIR library optimization.
432 /// Set when -fclangir-lib-opt or -fclangir-lib-opt= was passed.
433 LLVM_PREFERRED_TYPE(bool)
435
436 /// Options to control ClangIR library optimization
438
440
441 /// Specifies the output format of the AST.
443
444 /// The input kind, either specified via -x argument or deduced from the input
445 /// file name.
447
448 /// The input files and their types.
450
451 /// When the input is a module map, the original module map file from which
452 /// that map was inferred, if any (for umbrella modules).
454
455 /// The output file, if any.
457
458 /// If given, the new suffix for fix-it rewritten files.
460
461 /// If given, filter dumped AST Decl nodes by this substring.
463
464 /// If given, enable code completion at the provided location.
466
467 /// The frontend action to perform.
468 frontend::ActionKind ProgramAction = frontend::ParseSyntaxOnly;
469
470 /// The name of the action to run when using a plugin action.
472
473 // Currently this is only used as part of the `-extract-api` action.
474 /// The name of the product the input files belong too.
476
477 // Currently this is only used as part of the `-extract-api` action.
478 // A comma separated list of files providing a list of APIs to
479 // ignore when extracting documentation.
481
482 // Location of output directory where symbol graph information would
483 // be dumped. This overrides regular -o output file specification
485
486 /// Args to pass to the plugins
487 std::map<std::string, std::vector<std::string>> PluginArgs;
488
489 /// The list of plugin actions to run in addition to the normal action.
490 std::vector<std::string> AddPluginActions;
491
492 /// The list of plugins to load.
493 std::vector<std::string> Plugins;
494
495 /// The list of module file extensions.
497
498 /// The list of module map files to load before processing the input.
499 std::vector<std::string> ModuleMapFiles;
500
501 /// The list of additional prebuilt module files to load before
502 /// processing the input.
503 std::vector<std::string> ModuleFiles;
504
505 /// The list of files to embed into the compiled module file.
506 std::vector<std::string> ModulesEmbedFiles;
507
508 /// The time in seconds to wait on an implicit module lock before timing out.
510
511 /// The list of AST files to merge.
512 std::vector<std::string> ASTMergeFiles;
513
514 /// A list of arguments to forward to LLVM's option processing; this
515 /// should only be used for debugging and experimental features.
516 std::vector<std::string> LLVMArgs;
517
518 /// A list of arguments to forward to MLIR's option processing; this
519 /// should only be used for debugging and experimental features.
520 std::vector<std::string> MLIRArgs;
521
522 /// File name of the file that will provide record layouts
523 /// (in the format produced by -fdump-record-layouts).
525
526 /// Auxiliary triple for CUDA/HIP/SYCL compilation.
527 std::string AuxTriple;
528
529 /// Auxiliary target CPU for CUDA/HIP compilation.
530 std::optional<std::string> AuxTargetCPU;
531
532 /// Auxiliary target features for CUDA/HIP compilation.
533 std::optional<std::vector<std::string>> AuxTargetFeatures;
534
535 /// Filename to write statistics to.
536 std::string StatsFile;
537
538 /// Minimum time granularity (in microseconds) traced by time profiler.
540
541 /// Make time trace capture verbose event details (e.g. source filenames).
542 /// This can increase the size of the output by 2-3 times.
543 LLVM_PREFERRED_TYPE(bool)
544 unsigned TimeTraceVerbose : 1;
545
546 /// Path which stores the output files for -ftime-trace
548
549 /// Output Path for module output file.
551
552 /// Output path to dump ranges of deserialized declarations to use as
553 /// minimization hints.
555
556public:
575
576 /// getInputKindForExtension - Return the appropriate input kind for a file
577 /// extension. For example, "c" would return Language::C.
578 ///
579 /// \return The input kind for the extension, or Language::Unknown if the
580 /// extension is not recognized.
581 static InputKind getInputKindForExtension(StringRef Extension);
582};
583
584} // namespace clang
585
586#endif // LLVM_CLANG_FRONTEND_FRONTENDOPTIONS_H
Options controlling the behavior of code completion.
An input file for the front end.
llvm::MemoryBufferRef getBuffer() const
FrontendInputFile(llvm::MemoryBufferRef Buffer, InputKind Kind, bool IsSystem=false)
InputKind getKind() const
StringRef getFile() const
InputKind::HeaderUnitKind getHeaderUnitKind() const
FrontendInputFile(StringRef File, InputKind Kind, bool IsSystem=false)
InputKind DashX
The input kind, either specified via -x argument or deduced from the input file name.
unsigned BuildingImplicitModule
Whether we are performing an implicit module build.
unsigned TimeTraceGranularity
Minimum time granularity (in microseconds) traced by time profiler.
std::vector< std::string > ModuleFiles
The list of additional prebuilt module files to load before processing the input.
unsigned AllowPCMWithCompilerErrors
Output (and read) PCM files regardless of compiler errors.
unsigned SkipFunctionBodies
Skip over function bodies to speed up parsing in cases you do not need them (e.g.
unsigned ClangIRDisablePasses
Disable Clang IR specific (CIR) passes.
unsigned IncludeTimestamps
Whether timestamps should be written to the produced PCH file.
unsigned EmitSymbolGraphSymbolLabelsForTesting
Whether to emit symbol labels for testing in generated symbol graphs.
unsigned EmitSymbolGraph
Whether to emit symbol graph files as a side effect of compilation.
std::map< std::string, std::vector< std::string > > PluginArgs
Args to pass to the plugins.
unsigned ClangIRDisableCIRVerifier
Disable Clang IR (CIR) verifier.
unsigned BuildingImplicitModuleUsesLock
Whether to use a filesystem lock when building implicit modules.
unsigned ModulesShareFileManager
Whether to share the FileManager when building modules.
std::vector< std::string > MLIRArgs
A list of arguments to forward to MLIR's option processing; this should only be used for debugging an...
std::string ASTDumpFilter
If given, filter dumped AST Decl nodes by this substring.
unsigned ASTDumpLookups
Whether we include lookup table dumps in AST dumps.
unsigned UseTemporary
Should a temporary file be used during compilation.
CodeCompleteOptions CodeCompleteOpts
unsigned IsSystemModule
When using -emit-module, treat the modulemap as a system module.
unsigned ClangIRLibOptEnabled
Enable ClangIR library optimization.
unsigned PrintSupportedCPUs
print the supported cpus for the current target
unsigned FixToTemporaries
Apply fixes to temporary files.
unsigned PrintSupportedExtensions
Print the supported extensions for the current target.
unsigned PrintEnabledExtensions
Print the extensions enabled for the current target.
std::vector< std::string > LLVMArgs
A list of arguments to forward to LLVM's option processing; this should only be used for debugging an...
unsigned ShowHelp
Show the -help text.
std::string TimeTracePath
Path which stores the output files for -ftime-trace.
unsigned FixAndRecompile
Apply fixes and recompile.
unsigned UseClangIRPipeline
Use Clang IR pipeline to emit code.
unsigned FixOnlyWarnings
Apply fixes only for warnings.
ASTDumpOutputFormat ASTDumpFormat
Specifies the output format of the AST.
std::optional< std::string > AuxTargetCPU
Auxiliary target CPU for CUDA/HIP compilation.
std::string StatsFile
Filename to write statistics to.
std::string OutputFile
The output file, if any.
unsigned ShowStats
Show frontend performance metrics and statistics.
unsigned GenReducedBMI
Whether to generate reduced BMI for C++20 named modules.
std::string ActionName
The name of the action to run when using a plugin action.
std::vector< std::shared_ptr< ModuleFileExtension > > ModuleFileExtensions
The list of module file extensions.
ParsedSourceLocation CodeCompletionAt
If given, enable code completion at the provided location.
std::string FixItSuffix
If given, the new suffix for fix-it rewritten files.
std::string OriginalModuleMap
When the input is a module map, the original module map file from which that map was inferred,...
std::vector< std::string > ModulesEmbedFiles
The list of files to embed into the compiled module file.
unsigned ShowVersion
Show the -version text.
std::string ProductName
The name of the product the input files belong too.
unsigned ModulesEmbedAllFiles
Whether we should embed all used files into the PCM file.
std::string ClangIRLibOptOptions
Options to control ClangIR library optimization.
std::string ModuleOutputPath
Output Path for module output file.
std::vector< std::string > AddPluginActions
The list of plugin actions to run in addition to the normal action.
unsigned ASTDumpDeclTypes
Whether we include declaration type dumps in AST dumps.
unsigned FixWhatYouCan
Apply fixes even if there are unfixable errors.
static InputKind getInputKindForExtension(StringRef Extension)
getInputKindForExtension - Return the appropriate input kind for a file extension.
unsigned ClangIREnableIdiomRecognizer
Enable Clang IR (CIR) idiom recognizer.
std::vector< std::string > ASTMergeFiles
The list of AST files to merge.
std::vector< std::string > Plugins
The list of plugins to load.
unsigned ASTDumpAll
Whether we deserialize all decls when forming AST dumps.
unsigned GenerateGlobalModuleIndex
Whether we can generate the global module index if needed.
unsigned TimeTraceVerbose
Make time trace capture verbose event details (e.g.
std::string DumpMinimizationHintsPath
Output path to dump ranges of deserialized declarations to use as minimization hints.
unsigned RelocatablePCH
When generating PCH files, instruct the AST writer to create relocatable PCH files.
unsigned EmitExtensionSymbolGraphs
Whether to emit additional symbol graphs for extended modules.
unsigned DisableFree
Disable memory freeing on exit.
unsigned ClangIRCallConvLowering
Run the Clang IR (CIR) calling-convention lowering pass.
SmallVector< FrontendInputFile, 0 > Inputs
The input files and their types.
frontend::ActionKind ProgramAction
The frontend action to perform.
std::optional< std::vector< std::string > > AuxTargetFeatures
Auxiliary target features for CUDA/HIP compilation.
unsigned EmitPrettySymbolGraphs
Whether to emit symbol labels for testing in generated symbol graphs.
std::string OverrideRecordLayoutsFile
File name of the file that will provide record layouts (in the format produced by -fdump-record-layou...
std::vector< std::string > ExtractAPIIgnoresFileList
std::string AuxTriple
Auxiliary triple for CUDA/HIP/SYCL compilation.
unsigned UseGlobalModuleIndex
Whether we can use the global module index if available.
std::vector< std::string > ModuleMapFiles
The list of module map files to load before processing the input.
unsigned ASTDumpDecls
Whether we include declaration dumps in AST dumps.
unsigned ImplicitModulesLockTimeoutSeconds
The time in seconds to wait on an implicit module lock before timing out.
The kind of a file that we've been handed as an input.
bool isPreprocessed() const
InputKind withHeaderUnit(HeaderUnitKind HU) const
bool isHeaderUnit() const
bool isUnknown() const
Is the input kind fully-unknown?
bool isObjectiveC() const
Is the language of the input some dialect of Objective-C?
constexpr InputKind(Language L=Language::Unknown, Format F=Source, bool PP=false, HeaderUnitKind HU=HeaderUnit_None, bool HD=false)
Format
The input file format.
InputKind getPreprocessed() const
bool isHeader() const
Format getFormat() const
HeaderUnitKind getHeaderUnitKind() const
InputKind getHeader() const
InputKind withFormat(Format F) const
Language getLanguage() const
An abstract superclass that describes a custom extension to the module/precompiled header file format...
@ GenerateHeaderUnit
Generate a C++20 header unit module from a header file.
@ VerifyPCH
Load and verify that a PCH file is usable.
@ PrintPreprocessedInput
-E mode.
@ RewriteTest
Rewriter playground.
@ ParseSyntaxOnly
Parse and perform semantic analysis.
@ EmitBC
Emit a .bc file.
@ GenerateModuleInterface
Generate pre-compiled module from a standard C++ module interface unit.
@ EmitLLVM
Emit a .ll file.
@ PrintPreamble
Print the "preamble" of the input file.
@ InitOnly
Only execute frontend initialization.
@ ASTView
Parse ASTs and view them in Graphviz.
@ PluginAction
Run a plugin action,.
@ EmitObj
Emit a .o file.
@ DumpRawTokens
Dump out raw tokens.
@ PrintDependencyDirectivesSourceMinimizerOutput
Print the output of the dependency directives source minimizer.
@ RewriteObjC
ObjC->C Rewriter.
@ RunPreprocessorOnly
Just lex, no output.
@ ModuleFileInfo
Dump information about a module file.
@ EmitCIR
Emit a .cir file.
@ DumpCompilerOptions
Dump the compiler configuration.
@ RunAnalysis
Run one or more source code analyses.
@ ASTPrint
Parse ASTs and print them.
@ GenerateReducedModuleInterface
Generate reduced module interface for a standard C++ module interface unit.
@ GenerateInterfaceStubs
Generate Interface Stub Files.
@ ASTDump
Parse ASTs and dump them.
@ DumpTokens
Dump out preprocessed tokens.
@ FixIt
Parse and apply any fixits to the source.
@ EmitAssembly
Emit a .s file.
@ EmitCodeGenOnly
Generate machine code, but don't emit anything.
@ RewriteMacros
Expand macros but not #includes.
@ EmitHTML
Translate input source into HTML.
@ GeneratePCH
Generate pre-compiled header.
@ EmitLLVMOnly
Generate LLVM IR, but do not emit anything.
@ GenerateModule
Generate pre-compiled module from a module map.
@ ASTDeclList
Parse ASTs and list Decl nodes.
Top level wrappers for InstallAPI frontend operations.
ASTDumpOutputFormat
Used to specify the format for printing AST dump information.
Language
The language for the input, used to select and validate the language standard and possible actions.
Diagnostic wrappers for TextAPI types for error reporting.
Definition Dominators.h:30
#define false
Definition stdbool.h:26
#define true
Definition stdbool.h:25
A source location that has been parsed on the command line.