clang 22.0.0git
clang::CodeGen::ConstantStructBuilderTemplateBase< Traits > Class Template Reference

A template class designed to allow other frontends to easily customize the builder classes used by ConstantInitBuilder, and thus to extend the API to work with the abstractions they prefer. More...

#include "clang/CodeGen/ConstantInitBuilder.h"

Inheritance diagram for clang::CodeGen::ConstantStructBuilderTemplateBase< Traits >:
[legend]

Public Types

using InitBuilder = typename Traits::InitBuilder
using AggregateBuilderBase = typename Traits::AggregateBuilderBase
Public Types inherited from clang::CodeGen::ConstantAggregateBuilderTemplateBase< Traits::StructBuilder, Traits >
using InitBuilder
using ArrayBuilder
using StructBuilder
using AggregateBuilderBase

Public Member Functions

void setPacked (bool packed)
void suggestType (llvm::StructType *structTy)
 Use the given type for the struct if its element count is correct.
Public Member Functions inherited from clang::CodeGen::ConstantAggregateBuilderTemplateBase< Traits::StructBuilder, Traits >
ArrayBuilder beginArray (llvm::Type *eltTy=nullptr)
StructBuilder beginStruct (llvm::StructType *ty=nullptr)
void finishAndAddTo (AggregateBuilderBase &parent)
 Given that this builder was created by beginning an array or struct component on the given parent builder, finish the array/struct component and add it to the parent.
llvm::GlobalVariable * finishAndCreateGlobal (As &&...args)
 Given that this builder was created by beginning an array or struct directly on a ConstantInitBuilder, finish the array/struct and create a global variable with it as the initializer.
void finishAndSetAsInitializer (llvm::GlobalVariable *global)
 Given that this builder was created by beginning an array or struct directly on a ConstantInitBuilder, finish the array/struct and set it as the initializer of the given global variable.
ConstantInitFuture finishAndCreateFuture ()
 Given that this builder was created by beginning an array or struct directly on a ConstantInitBuilder, finish the array/struct and return a future which can be used to install the initializer in a global later.

Protected Member Functions

 ConstantStructBuilderTemplateBase (InitBuilder &builder, AggregateBuilderBase *parent, llvm::StructType *structTy)
Protected Member Functions inherited from clang::CodeGen::ConstantAggregateBuilderTemplateBase< Traits::StructBuilder, Traits >
 ConstantAggregateBuilderTemplateBase (InitBuilder &builder, AggregateBuilderBase *parent)
Traits::StructBuilder & asImpl ()

Friends

template<class, class>
class ConstantAggregateBuilderTemplateBase

Detailed Description

template<class Traits>
class clang::CodeGen::ConstantStructBuilderTemplateBase< Traits >

A template class designed to allow other frontends to easily customize the builder classes used by ConstantInitBuilder, and thus to extend the API to work with the abstractions they prefer.

This would probably not be necessary if C++ just supported extension methods.

Definition at line 456 of file ConstantInitBuilder.h.

Member Typedef Documentation

◆ AggregateBuilderBase

template<class Traits>
using clang::CodeGen::ConstantStructBuilderTemplateBase< Traits >::AggregateBuilderBase = typename Traits::AggregateBuilderBase

Definition at line 464 of file ConstantInitBuilder.h.

◆ InitBuilder

template<class Traits>
using clang::CodeGen::ConstantStructBuilderTemplateBase< Traits >::InitBuilder = typename Traits::InitBuilder

Definition at line 463 of file ConstantInitBuilder.h.

Constructor & Destructor Documentation

◆ ConstantStructBuilderTemplateBase()

template<class Traits>
clang::CodeGen::ConstantStructBuilderTemplateBase< Traits >::ConstantStructBuilderTemplateBase ( InitBuilder & builder,
AggregateBuilderBase * parent,
llvm::StructType * structTy )
inlineprotected

Definition at line 473 of file ConstantInitBuilder.h.

References clang::Packed.

Member Function Documentation

◆ setPacked()

template<class Traits>
void clang::CodeGen::ConstantStructBuilderTemplateBase< Traits >::setPacked ( bool packed)
inline

Definition at line 481 of file ConstantInitBuilder.h.

References clang::Packed.

◆ suggestType()

template<class Traits>
void clang::CodeGen::ConstantStructBuilderTemplateBase< Traits >::suggestType ( llvm::StructType * structTy)
inline

Use the given type for the struct if its element count is correct.

Don't add more elements after calling this.

Definition at line 487 of file ConstantInitBuilder.h.

◆ ConstantAggregateBuilderTemplateBase

template<class Traits>
template<class, class>
friend class ConstantAggregateBuilderTemplateBase
friend

The documentation for this class was generated from the following file: