-
- if (IsFilter) {
- // FIXME - Assume there is only one filter typeinfo list per function
- // time being. I.E., Each call to eh_filter will have the same list.
- // This can change if a function is inlined.
- Filter = &LandingPad;
- SizeAction = Asm->SizeSLEB128(-1) + Asm->SizeSLEB128(0);
- SizeSiteActions += SizeAction;
- // Record the first action of the landing pad site.
- FirstAction = SizeActions + SizeSiteActions - SizeAction + 1;
- } else if (TypeIds.empty()) {
- FirstAction = 0;
- } else {
- // Gather the action sizes
- for (unsigned j = 0, M = TypeIds.size(); j != M; ++j) {
- unsigned TypeID = TypeIds[j];
- unsigned SizeTypeID = Asm->SizeSLEB128(TypeID);
- signed Action = j ? -(SizeAction + SizeTypeID) : 0;
- SizeAction = SizeTypeID + Asm->SizeSLEB128(Action);
+
+ for (unsigned j = 0, E = LandingPad.BeginLabels.size(); j != E; ++j) {
+ if (IsFilter) {
+ // FIXME - Assume there is only one filter typeinfo list per function
+ // time being. I.E., Each call to eh_filter will have the same list.
+ // This can change if a function is inlined.
+ Filter = &LandingPad;
+ SizeAction = Asm->SizeSLEB128(-1) + Asm->SizeSLEB128(0);