Debug Info: Move DIEDwarfExpression into DwarfExpression.h because it

needs to be accessed from both DwarfCompileUnit.cpp and DwarfUnit.cpp.

NFC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225898 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Adrian Prantl 2015-01-14 01:01:22 +00:00
parent f29d97eb0f
commit e733e5461f
2 changed files with 17 additions and 14 deletions

View File

@ -22,6 +22,8 @@ namespace llvm {
class AsmPrinter;
class ByteStreamer;
class TargetRegisterInfo;
class DwarfUnit;
class DIELoc;
/// Base class containing the logic for constructing DWARF expressions
/// independently of whether they are emitted into a DIE or into a .debug_loc
@ -108,6 +110,21 @@ public:
void EmitUnsigned(unsigned Value) override;
bool isFrameRegister(unsigned MachineReg) override;
};
/// DwarfExpression implementation for singular DW_AT_location.
class DIEDwarfExpression : public DwarfExpression {
DwarfUnit &DU;
DIELoc ¨
public:
DIEDwarfExpression(const AsmPrinter &AP, DwarfUnit &DU, DIELoc &DIE)
: DwarfExpression(AP), DU(DU), DIE(DIE) {}
void EmitOp(uint8_t Op, const char *Comment = nullptr) override;
void EmitSigned(int Value) override;
void EmitUnsigned(unsigned Value) override;
bool isFrameRegister(unsigned MachineReg) override;
};
}
#endif

View File

@ -44,20 +44,6 @@ GenerateDwarfTypeUnits("generate-type-units", cl::Hidden,
cl::desc("Generate DWARF4 type units."),
cl::init(false));
/// DwarfExpression implementation for DwarfUnit.
class DIEDwarfExpression : public DwarfExpression {
DwarfUnit &DU;
DIELoc ¨
public:
DIEDwarfExpression(const AsmPrinter &AP, DwarfUnit &DU, DIELoc &DIE)
: DwarfExpression(AP), DU(DU), DIE(DIE) {}
void EmitOp(uint8_t Op, const char* Comment = nullptr) override;
void EmitSigned(int Value) override;
void EmitUnsigned(unsigned Value) override;
bool isFrameRegister(unsigned MachineReg) override;
};
void DIEDwarfExpression::EmitOp(uint8_t Op, const char* Comment) {
DU.addUInt(DIE, dwarf::DW_FORM_data1, Op);
}