[llvm] r229355 - DataLayout: Validate that the pref alignment is at least the ABI align

David Majnemer david.majnemer at gmail.com
Sun Feb 15 21:41:55 PST 2015


Author: majnemer
Date: Sun Feb 15 23:41:55 2015
New Revision: 229355

URL: http://llvm.org/viewvc/llvm-project?rev=229355&view=rev
Log:
DataLayout: Validate that the pref alignment is at least the ABI align

Added:
    llvm/trunk/test/Assembler/invalid-datalayout18.ll
Modified:
    llvm/trunk/lib/IR/DataLayout.cpp

Modified: llvm/trunk/lib/IR/DataLayout.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/DataLayout.cpp?rev=229355&r1=229354&r2=229355&view=diff
==============================================================================
--- llvm/trunk/lib/IR/DataLayout.cpp (original)
+++ llvm/trunk/lib/IR/DataLayout.cpp Sun Feb 15 23:41:55 2015
@@ -424,7 +424,10 @@ DataLayout::findPointerLowerBound(uint32
 void DataLayout::setPointerAlignment(uint32_t AddrSpace, unsigned ABIAlign,
                                      unsigned PrefAlign,
                                      uint32_t TypeByteWidth) {
-  assert(ABIAlign <= PrefAlign && "Preferred alignment worse than ABI!");
+  if (PrefAlign < ABIAlign)
+    report_fatal_error(
+        "Preferred alignment cannot be less than the ABI alignment");
+
   PointersTy::iterator I = findPointerLowerBound(AddrSpace);
   if (I == Pointers.end() || I->AddressSpace != AddrSpace) {
     Pointers.insert(I, PointerAlignElem::get(AddrSpace, ABIAlign, PrefAlign,

Added: llvm/trunk/test/Assembler/invalid-datalayout18.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Assembler/invalid-datalayout18.ll?rev=229355&view=auto
==============================================================================
--- llvm/trunk/test/Assembler/invalid-datalayout18.ll (added)
+++ llvm/trunk/test/Assembler/invalid-datalayout18.ll Sun Feb 15 23:41:55 2015
@@ -0,0 +1,3 @@
+; RUN: not llvm-as < %s 2>&1 | FileCheck %s
+target datalayout = "p:32:32:16"
+; CHECK: Preferred alignment cannot be less than the ABI alignment





More information about the llvm-commits mailing list