[llvm] [llvm-readobj][AArch64][ELF][PAC] Support ELF AUTH constants (PR #72713)

James Henderson via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 20 00:35:09 PST 2023


================
@@ -2086,21 +2086,34 @@ template <typename ELFT> void ELFDumper<ELFT>::parseDynamicTable() {
       break;
     case ELF::DT_RELR:
     case ELF::DT_ANDROID_RELR:
+    case ELF::DT_AARCH64_AUTH_RELR:
       DynRelrRegion.Addr = toMappedAddr(Dyn.getTag(), Dyn.getPtr());
       break;
     case ELF::DT_RELRSZ:
     case ELF::DT_ANDROID_RELRSZ:
+    case ELF::DT_AARCH64_AUTH_RELRSZ:
       DynRelrRegion.Size = Dyn.getVal();
-      DynRelrRegion.SizePrintName = Dyn.d_tag == ELF::DT_RELRSZ
-                                        ? "DT_RELRSZ value"
-                                        : "DT_ANDROID_RELRSZ value";
+      if (Dyn.d_tag == ELF::DT_RELRSZ)
+        DynRelrRegion.SizePrintName = "DT_RELRSZ value";
+      else if (Dyn.d_tag == ELF::DT_ANDROID_RELRSZ)
+        DynRelrRegion.SizePrintName = "DT_ANDROID_RELRSZ value";
+      else if (Dyn.d_tag == ELF::DT_AARCH64_AUTH_RELRSZ)
+        DynRelrRegion.SizePrintName = "DT_AARCH64_AUTH_RELRSZ value";
+      else
+        llvm_unreachable("unexpected Dyn.d_tag value");
       break;
     case ELF::DT_RELRENT:
     case ELF::DT_ANDROID_RELRENT:
+    case ELF::DT_AARCH64_AUTH_RELRENT:
       DynRelrRegion.EntSize = Dyn.getVal();
-      DynRelrRegion.EntSizePrintName = Dyn.d_tag == ELF::DT_RELRENT
-                                           ? "DT_RELRENT value"
-                                           : "DT_ANDROID_RELRENT value";
+      if (Dyn.d_tag == ELF::DT_RELRENT)
----------------
jh7370 wrote:

Ditto.

https://github.com/llvm/llvm-project/pull/72713


More information about the llvm-commits mailing list