[AIX] follow-up of D124654.
authoresmeyi <esme.yi@ibm.com>
Wed, 13 Jul 2022 07:39:08 +0000 (03:39 -0400)
committeresmeyi <esme.yi@ibm.com>
Wed, 13 Jul 2022 07:39:08 +0000 (03:39 -0400)
Report an error when alias symbols are not emitted all.

llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
llvm/test/CodeGen/PowerPC/aix-alias-alignment-3.ll [new file with mode: 0644]

index 64ce270..94612a5 100644 (file)
@@ -3357,6 +3357,11 @@ void AsmPrinter::emitGlobalConstant(const DataLayout &DL, const Constant *CV,
     // look like they are at the same location.
     OutStreamer->emitIntValue(0, 1);
   }
+  if (!AliasList)
+    return;
+  for (const auto &AliasPair : *AliasList)
+    report_fatal_error("Aliases with offset " + Twine(AliasPair.first) +
+                       " were not emitted.");
 }
 
 void AsmPrinter::emitMachineConstantPoolValue(MachineConstantPoolValue *MCPV) {
diff --git a/llvm/test/CodeGen/PowerPC/aix-alias-alignment-3.ll b/llvm/test/CodeGen/PowerPC/aix-alias-alignment-3.ll
new file mode 100644 (file)
index 0000000..7934638
--- /dev/null
@@ -0,0 +1,8 @@
+;; TODO: The alias offset doesn't refer to any sub-element.
+; RUN: not --crash llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \
+; RUN:     -data-sections=false < %s 2>&1 | FileCheck --check-prefix=ERROR %s
+
+; ERROR: Aliases with offset 1 were not emitted.
+
+@ConstVector = global <2 x i64> <i64 1, i64 2>
+@var = alias i64, getelementptr inbounds (i8, ptr @ConstVector, i32 1)