From fe4ef2c2aec3a9fbd913957411b9e7faa4246b95 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Thu, 20 Dec 2012 04:02:58 +0000 Subject: [PATCH] Don't use -1 as a value of an unsigned 7-bit enumeration; that has undefined behavior and violates the !range constraints we put on loads of this enum. Found by clang -fsanitize=enum. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170653 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/DataLayout.h | 1 + lib/VMCore/DataLayout.cpp | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/llvm/DataLayout.h b/include/llvm/DataLayout.h index 4cb77663876..cc020171899 100644 --- a/include/llvm/DataLayout.h +++ b/include/llvm/DataLayout.h @@ -39,6 +39,7 @@ class ArrayRef; /// Enum used to categorize the alignment types stored by LayoutAlignElem enum AlignTypeEnum { + INVALID_ALIGN = 0, ///< An invalid alignment INTEGER_ALIGN = 'i', ///< Integer type alignment VECTOR_ALIGN = 'v', ///< Vector type alignment FLOAT_ALIGN = 'f', ///< Floating point type alignment diff --git a/lib/VMCore/DataLayout.cpp b/lib/VMCore/DataLayout.cpp index b0ac62686d1..6cf51f5a4dd 100644 --- a/lib/VMCore/DataLayout.cpp +++ b/lib/VMCore/DataLayout.cpp @@ -118,8 +118,7 @@ LayoutAlignElem::operator==(const LayoutAlignElem &rhs) const { } const LayoutAlignElem -DataLayout::InvalidAlignmentElem = - LayoutAlignElem::get((AlignTypeEnum) -1, 0, 0, 0); +DataLayout::InvalidAlignmentElem = LayoutAlignElem::get(INVALID_ALIGN, 0, 0, 0); //===----------------------------------------------------------------------===// // PointerAlignElem, PointerAlign support