Handle the "eh" CIE augmentation which can appear in a .eh_frame section.
Hopefully the last hurdle gcc 2 has prepared for preventing variables to show up. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33924 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
accec9a7ae
commit
3ac8569f3c
@ -1395,8 +1395,23 @@ DwarfFile::_ParseCIE(CompilationUnit* unit, CfaContext& context,
|
||||
|
||||
uint8 version = dataReader.Read<uint8>(0);
|
||||
const char* augmentation = dataReader.ReadString();
|
||||
if (version != 1 || augmentation == NULL || *augmentation != '\0')
|
||||
if (version != 1) {
|
||||
TRACE_CFI(" cie: length: %llu, version: %u -- unsupported\n",
|
||||
length, version);
|
||||
return B_UNSUPPORTED;
|
||||
}
|
||||
|
||||
if (augmentation == NULL || *augmentation != '\0') {
|
||||
if (strcmp(augmentation, "eh") == 0) {
|
||||
// the augmentation consists of the exception table pointer -- just
|
||||
// ignore it
|
||||
dataReader.ReadAddress(0);
|
||||
} else {
|
||||
TRACE_CFI(" cie: length: %llu, version: %u, augmentation: \"%s\" "
|
||||
"-- unsupported\n", length, version, augmentation);
|
||||
return B_UNSUPPORTED;
|
||||
}
|
||||
}
|
||||
|
||||
context.SetCodeAlignment(dataReader.ReadUnsignedLEB128(0));
|
||||
context.SetDataAlignment(dataReader.ReadSignedLEB128(0));
|
||||
|
Loading…
x
Reference in New Issue
Block a user