#include <algorithm>#include <optional>#include <vector>#include "ASTHelpers.h"#include "ClangCompat.h"#include "CodeGenerator.h"#include "DPrint.h"#include "Insights.h"#include "InsightsHelpers.h"#include "InsightsOnce.h"#include "InsightsStrCat.h"#include "NumberIterator.h"#include "clang/AST/RecordLayout.h"#include "clang/Frontend/CompilerInstance.h"#include "clang/Sema/Sema.h"#include "llvm/ADT/StringExtras.h"#include "llvm/Support/Path.h"#include "CodeGeneratorTypes.h"
Go to the source code of this file.
| Classes | |
| class | clang::insights::ArrayInitCodeGenerator | 
| class | clang::insights::StructuredBindingsCodeGenerator | 
| class | clang::insights::UsingCodeGenerator | 
| Handle using statements which pull functions ore members from a base class into the class.  More... | |
| class | clang::insights::LambdaInitCaptureCodeGenerator | 
| A special code generator for Lambda init captures which use std::move.  More... | |
| class | clang::insights::LambdaNameOnlyCodeGenerator | 
| class | clang::insights::BindingDeclFinder | 
| Find a DeclRefExprbelonging to aDecompositionDecl.  More... | |
| class | clang::insights::TemporaryDeclFinder | 
| Find a DeclRefExprbelonging to aDecompositionDecl.  More... | |
| class | clang::insights::ContinueASTTransformer | 
| Namespaces | |
| namespace | clang | 
| namespace | clang::insights | 
| Macros | |
| #define | LAMBDA_SCOPE_HELPER(type) LambdaScopeHandler lambdaScopeHandler{mLambdaStack, mOutputFormatHelper, LambdaCallerType::type}; | 
| Convenience macro to create a LambdaScopeHandler on the stack. | |
| #define | CONDITIONAL_LAMBDA_SCOPE_HELPER(type, cond) | 
| The lambda scope helper is only created if cond is true. | |
| #define | BUILD_OPT_AND(name, param) std::function name = [](param t) -> MyOptional<param> | 
| #define | BUILD_OPT_AND_O(name, param, ret) std::function name = [](param t) -> MyOptional<ret> | 
| #define | SUPPORTED_DECL(type) | 
| #define | IGNORED_DECL SUPPORTED_DECL | 
| #define | SUPPORTED_STMT(type) | 
| #define | IGNORED_STMT SUPPORTED_STMT | 
| #define | CASE(K, retVal) case BuiltinType::K: return retVal | 
| Functions | |
| clang::insights::BUILD_OPT_AND (IsPointer, QualType) | |
| clang::insights::BUILD_OPT_AND (IsPOD, QualType) | |
| clang::insights::BUILD_OPT_AND_O (CanonicalType, const InitListExpr &, QualType) | |
| static std::string | clang::insights::AccessToStringWithColon (const AccessSpecifier &access) | 
| static std::string_view | clang::insights::GetCastName (const CastKind castKind, bool constnessChange=false) | 
| static std::string_view | clang::insights::GetTagDeclTypeName (const TagDecl &decl) | 
| static std::string_view | clang::insights::ArrowOrDot (bool isArrow) | 
| template<typename T > | |
| static T | clang::insights::ValueOrDefault (bool b, T v) | 
| template<typename T > | |
| static T | clang::insights::ValueOr (bool b, T val, T el) | 
| static std::optional< std::string > | clang::insights::GetFieldDeclNameForLambda (const FieldDecl &fieldDecl, const CXXRecordDecl &cxxRecordDecl) | 
| static std::string_view | clang::insights::GetStorageClassAsString (const StorageClass &sc) | 
| static std::string | clang::insights::GetStorageClassAsStringWithSpace (const StorageClass &sc) | 
| static std::string | clang::insights::GetQualifiers (const VarDecl &vd) | 
| static std::string | clang::insights::FormatVarTemplateSpecializationDecl (const Decl *decl, std::string &&defaultName) | 
| int | clang::insights::GetGlobalVtablePos (const CXXRecordDecl *record, const CXXRecordDecl *recordB) | 
| void | clang::insights::PushVtableEntry (const CXXRecordDecl *record, const CXXRecordDecl *recordB, VarDecl *decl) | 
| static void | clang::insights::PushGlobalVariable (const Expr *callExpr) | 
| static void | clang::insights::PushGlobalVariableDtor (const Expr *callExpr) | 
| std::string | clang::insights::EmitGlobalVariableCtors () | 
| static bool | clang::insights::IsPrimaryTemplatePackExpansionExpr (const ParenListExpr *stmt) | 
| static std::string | clang::insights::GetTypeConstraintAsString (const TypeConstraint *typeConstraint) | 
| static std::string_view | clang::insights::Ellipsis (bool b) | 
| static std::string_view | clang::insights::EllipsisSpace (bool b) | 
| static std::optional< std::pair< QualType, APValue > > | clang::insights::EvaluateNTTPAsConstantExpr (const Expr *expr) | 
| Evaluates a potential NTTP as a constant expression. | |
| template<typename... Args> | |
| static bool | clang::insights::IsStmtRequiringSemi (const Stmt *stmt) | 
| static bool | clang::insights::IsConstQualifiedType (QualType type) | 
| static auto & | clang::insights::GetRecordLayout (const RecordDecl *recordDecl) | 
| auto | clang::insights::GetSpaces (std::string::size_type offset) | 
| Variables | |
| template<typename T > | |
| std::function | clang::insights::Isa | 
| static SmallVector< std::pair< std::pair< const CXXRecordDecl *, const CXXRecordDecl * >, VarDecl * >, 10 > | clang::insights::gVtables {} | 
| static SmallVector< Expr *, 10 > | clang::insights::globalVarCtors {} | 
| static SmallVector< Expr *, 10 > | clang::insights::globalVarDtors {} | 
| #define BUILD_OPT_AND | ( | name, | |
| param | |||
| ) | std::function name = [](param t) -> MyOptional<param> | 
Definition at line 45 of file CodeGenerator.cpp.
| #define BUILD_OPT_AND_O | ( | name, | |
| param, | |||
| ret | |||
| ) | std::function name = [](param t) -> MyOptional<ret> | 
Definition at line 46 of file CodeGenerator.cpp.
| #define CASE | ( | K, | |
| retVal | |||
| ) | case BuiltinType::K: return retVal | 
| #define CONDITIONAL_LAMBDA_SCOPE_HELPER | ( | type, | |
| cond | |||
| ) | 
The lambda scope helper is only created if cond is true.
Definition at line 34 of file CodeGenerator.cpp.
| #define IGNORED_DECL SUPPORTED_DECL | 
| #define IGNORED_STMT SUPPORTED_STMT | 
| #define LAMBDA_SCOPE_HELPER | ( | type | ) | LambdaScopeHandler lambdaScopeHandler{mLambdaStack, mOutputFormatHelper, LambdaCallerType::type}; | 
Convenience macro to create a LambdaScopeHandler on the stack.
Definition at line 29 of file CodeGenerator.cpp.
| #define SUPPORTED_DECL | ( | type | ) | 
| #define SUPPORTED_STMT | ( | type | ) |