public DwarfLocation(CompilationUnit comp_unit, DwarfLocation frame_base,
Attribute attribute, bool is_byref)
{
this.comp_unit = comp_unit;
this.frame_base = frame_base;
this.is_byref = is_byref;
if (comp_unit == null)
throw new InternalError ();
switch (attribute.DwarfForm) {
case DwarfForm.block1:
location_block = (byte []) attribute.Data;
break;
case DwarfForm.data1:
case DwarfForm.data2:
case DwarfForm.data4:
case DwarfForm.data8:
loclist_offset = (long) attribute.Data;
break;
default:
throw new InternalError ();
}
}