LLVM  10.0.0svn
Public Types | Static Public Member Functions | List of all members
llvm::FunctionPointerLikeTypeTraits< Alignment, FunctionPointerT > Struct Template Reference

Provide suitable custom traits struct for function pointers. More...

#include "llvm/Support/PointerLikeTypeTraits.h"

Inheritance diagram for llvm::FunctionPointerLikeTypeTraits< Alignment, FunctionPointerT >:
Inheritance graph
[legend]

Public Types

enum  { NumLowBitsAvailable = detail::ConstantLog2<Alignment>::value }
 

Static Public Member Functions

static void * getAsVoidPointer (FunctionPointerT P)
 
static FunctionPointerT getFromVoidPointer (void *P)
 

Detailed Description

template<int Alignment, typename FunctionPointerT>
struct llvm::FunctionPointerLikeTypeTraits< Alignment, FunctionPointerT >

Provide suitable custom traits struct for function pointers.

Function pointers can't be directly given these traits as functions can't have their alignment computed with alignof and we need different casting.

To rely on higher alignment for a specialized use, you can provide a customized form of this template explicitly with higher alignment, and potentially use alignment attributes on functions to satisfy that.

Definition at line 123 of file PointerLikeTypeTraits.h.

Member Enumeration Documentation

◆ anonymous enum

template<int Alignment, typename FunctionPointerT>
anonymous enum
Enumerator
NumLowBitsAvailable 

Definition at line 124 of file PointerLikeTypeTraits.h.

Member Function Documentation

◆ getAsVoidPointer()

template<int Alignment, typename FunctionPointerT>
static void* llvm::FunctionPointerLikeTypeTraits< Alignment, FunctionPointerT >::getAsVoidPointer ( FunctionPointerT  P)
inlinestatic

Definition at line 125 of file PointerLikeTypeTraits.h.

◆ getFromVoidPointer()

template<int Alignment, typename FunctionPointerT>
static FunctionPointerT llvm::FunctionPointerLikeTypeTraits< Alignment, FunctionPointerT >::getFromVoidPointer ( void *  P)
inlinestatic

Definition at line 131 of file PointerLikeTypeTraits.h.


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