// If there is a personality and landing pads then point to the language
// specific data area in the exception table.
- if (EHFrameInfo.PersonalityIndex) {
+ if (MMI->getPersonalities()[0] != NULL) {
Asm->EmitULEB128Bytes(4);
Asm->EOL("Augmentation size");
, CallsUnwindInit(0)
, DbgInfoAvailable(false)
{
- // Always emit "no personality" info
+ // Always emit some info, by default "no personality" info.
Personalities.push_back(NULL);
}
MachineModuleInfo::~MachineModuleInfo() {
if (Personalities[i] == Personality)
return;
- Personalities.push_back(Personality);
+ // If this is the first personality we're adding go
+ // ahead and add it at the beginning.
+ if (Personalities[0] == NULL)
+ Personalities[0] = Personality;
+ else
+ Personalities.push_back(Personality);
}
/// addCatchTypeInfo - Provide the catch typeinfo for a landing pad.