view ir/ir.h @ 1495:0c8d6d345001

The llvm element type of void arrays should be i8 and not void. This caused DtoArrayCopyToSlice to fail when trying to get the size of llvm-void for something like void[3] s = "abc"; inside a function.
author Christian Kamm <kamm incasoftware de>
date Fri, 12 Jun 2009 20:39:01 +0200
parents 46f6365a50d7
children
line wrap: on
line source

// this head contains stuff used by all the IR

#ifndef LDC_IR_IR_H
#define LDC_IR_IR_H

#include <deque>

#include "ir/irforw.h"
#include "root.h"

struct IRState;
struct IrFunction;

struct IrBase : Object
{
    virtual ~IrBase() {}
};

class Ir
{
public:
    Ir();

    void setState(IRState* p)   { irs = p; }
    IRState* getState()         { return irs; }

    void addFunctionBody(IrFunction* f);
    void emitFunctionBodies();

private:
    IRState* irs;

    std::deque<IrFunction*> functionbodies;
};

#endif