Lines Matching defs:Clang
2 "Clang" CFE Internals Manual
12 decisions made in the Clang C front-end. The purpose of this document is to
15 Clang, not for end-users. The description below is categorized by libraries,
26 The Clang "Basic" Library
46 The Clang Diagnostics subsystem is an important part of how the compiler
48 when the code is incorrect or dubious. In Clang, each diagnostic produced has
55 In this section, we'll be giving examples produced by the Clang command line
96 language that Clang accepts. This means that Clang fully understands and can
109 Clang internally supports a fully fine grained mapping mechanism that allows
132 * Diagnostics in Clang do not start with a capital letter and do not end with
135 * This does not apply to proper nouns like ``Clang`` or ``OpenMP``, to
141 * Appropriately capitalize proper nouns like ``Clang``, ``OpenCL``, ``GCC``,
145 like ``'%0' is deprecated; it will be removed in a future release of Clang``
147 of Clang``.
190 Finally, Clang uses the "``%...[digit]``" sequences to specify where and how
218 :ref:`translating <internals-diag-translation>` the Clang diagnostics to other
235 Clang :).
237 It is really easy to add format specifiers to the Clang diagnostics system, but
243 Clang:
426 diagnostic. Various components of Clang (e.g., the preprocessor, ``Sema``,
463 easily rewritten into a more modern form. Clang tries very hard to emit the
496 * Clang must recover from errors as if the fix-it had been applied.
529 relevant information, Clang needs to know what to do with it. As previously
536 example, the normal Clang ``DiagnosticConsumer`` (named
543 ``TextDiagnosticBuffer`` class, which is used when Clang is in ``-verify``
561 Adding Translations to Clang
601 The Clang front-end inherently depends on the location of a token being tracked
604 Clang depends on being able to find the original input characters for the
612 Clang represents most source ranges by [first, last], where "first" and "last"
635 Clang supports precompiled headers (:doc:`PCH <PCHInternals>`), which uses a
636 serialized representation of Clang's internal data structures, encoded with the
643 the Clang libraries, for example several methods for outputting diagnostics.
649 which holds information that describe current invocation of the Clang ``-cc1``
651 the Clang driver or from clients performing custom initialization. The data
658 The command line interface of the Clang ``-cc1`` frontend is defined alongside
671 This is done in the Clang driver to construct individual jobs based on the
755 Next, parse (or manufacture) the command line arguments in the Clang driver and
760 void Clang::ConstructJob(const ArgList &Args /*...*/) const {
791 that the ``-cc1`` command line interface is intended only for Clang developers,
835 The option marshalling infrastructure automates the parsing of the Clang
979 changes the default key path value. The Clang driver is responsible for
1327 had virtual methods for parse events, for example ``ActOnBinOp()``. When Clang
1347 Clang AST nodes (types, declarations, statements, expressions, and so on) are
1395 using only information stored in, or easily reconstructible from, the Clang AST.
1562 The ``DeclarationName`` class represents the name of a declaration in Clang.
1573 --- are represented as subclasses of Clang's common ``NamedDecl`` class,
1665 Clang are represented by the ``DeclContext`` class, from which the various
1926 In Clang's representation, the source-centric view of declaration contexts will
1947 In such a case, only one of those "definitions" is considered by Clang to be
1959 Clang produces an AST even when the code contains errors. Clang won't generate
1961 errors in the input. Clang-based tools also depend on such ASTs, and IDEs in
2098 ``ASTContext``. Please refer to the document :doc:`ASTImporter: Merging Clang
2109 Despite the name, the Clang AST is not a tree. It is a directed graph with
2481 of the ``ASTImporter`` class. This way, LLDB can reuse Clang's parsing
2733 Constant Folding in the Clang AST
2737 the Clang front-end. First, in general, we prefer the AST to retain the source
2750 Clang to be very pedantic about this, diagnosing cases when the code does not
2815 This section describes how some of the various extensions Clang supports
2859 How to change Clang
2868 analysis. This document explains how to add a custom attribute to Clang.
2874 Attributes in Clang are handled in three stages: parsing into a parsed attribute
2884 automatically by Clang, except for attributes spelled as so-called “custom”
2907 The first step to adding a new attribute to Clang is to add its definition to
2964 ``Clang`` Specifies two or three spellings: the first is a
2971 attribute is meant to be used by Clang, it should
3211 kind into Clang requires some care. The following list details the various
3212 places in Clang where an expression or statement needs to be introduced, along
3222 to produce great diagnostics and support Clang's various features that map
3320 ``ConvertTypeForMem`` that convert Clang's types (``clang::Type*`` or
3369 Clang:
3381 All functional changes to Clang should come with test coverage demonstrating
3388 Clang ``-cc1`` supports the ``-verify`` command line option as a way to
3391 locations. If all of the expected diagnostics match the actual output of Clang,
3393 the expected and actual output, Clang will emit detailed information about
3580 Clang implements several ways to test whether a feature is supported or not.
3582 ``__cpp_lambdas``, while others are Clang extensions, like ``__has_builtin``.