[PATCH] D92766: [XCOFF][AIX] Emit EH information in traceback table

Jason Liu via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 8 10:25:10 PST 2020


jasonliu added inline comments.


================
Comment at: llvm/include/llvm/BinaryFormat/XCOFF.h:404
   TB_OS2 = 0x10,         ///< Reserved for OS use
+  TB_EH_INFO = 0x08,     ///< Exception handling info presents.
   TB_LONGTBTABLE2 = 0x01 ///< Additional tbtable extension exists
----------------
daltenty wrote:
> nit: since every other entry is missing a period, lets just omit it (and the s)
I think we are suppose to have periods in every comments (at least it's the most used form in this file as well), so I will do a drive by fix to add periods in every entry.


================
Comment at: llvm/lib/CodeGen/AsmPrinter/AIXException.cpp:71
+  const Function *Per =
+      dyn_cast<Function>(F.getPersonalityFn()->stripPointerCasts());
   const MCSymbol *PerSym = Asm->TM.getSymbol(Per);
----------------
daltenty wrote:
> Compared with what was here before it seems like `F.getPersonalityFn()` can assert if `hasPersonalityFn()` is false, which can happen now because we won't check that before setting Per anymore, and we'll answer ShouldEmitEHBlock true if we have landing pads regardless of the personality setting. 
Runtime need to use personality routine to parses LSDA area to get to those landingpads. So without personality routine, there is no reason for us to have landingpads. 
So if we have landingpads, but no personality rountine presents in this function, something might already gone wrong somewhere else. 
I could add an assert here and if we hit it in any case, we would need to examine the situation at that point.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D92766/new/

https://reviews.llvm.org/D92766



More information about the llvm-commits mailing list