mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-13 11:23:14 +01:00
This is just to improve clarity, as it was rather non-obvious what of the code also applied to classes before. IrTypeAggr::createInitializerConstant would currently belong in IrTypeStruct, but this will be refactored anyway.
40 lines
869 B
C++
40 lines
869 B
C++
//===-- ir/irtypestruct.h - IrType for structs and unions -------*- C++ -*-===//
|
||
//
|
||
// LDC – the LLVM D compiler
|
||
//
|
||
// This file is distributed under the BSD-style LDC license. See the LICENSE
|
||
// file for details.
|
||
//
|
||
//===----------------------------------------------------------------------===//
|
||
|
||
#ifndef LDC_IR_IRTYPESTRUCT_H
|
||
#define LDC_IR_IRTYPESTRUCT_H
|
||
|
||
#include "ir/irtypeaggr.h"
|
||
|
||
struct StructDeclaration;
|
||
struct TypeStruct;
|
||
|
||
/// IrType for struct/union types.
|
||
class IrTypeStruct : public IrTypeAggr
|
||
{
|
||
public:
|
||
///
|
||
static IrTypeStruct* get(StructDeclaration* sd);
|
||
|
||
///
|
||
IrTypeStruct* isStruct() { return this; }
|
||
|
||
protected:
|
||
///
|
||
IrTypeStruct(StructDeclaration* sd);
|
||
|
||
/// StructDeclaration this type represents.
|
||
StructDeclaration* sd;
|
||
|
||
/// DMD TypeStruct of this type.
|
||
TypeStruct* ts;
|
||
};
|
||
|
||
#endif
|