diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-12-20 04:02:58 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-12-20 04:02:58 +0000 |
commit | fe4ef2c2aec3a9fbd913957411b9e7faa4246b95 (patch) | |
tree | c3e2874f9a8745155cb93e508e576035345fed8f | |
parent | e8ce626308eb047d226847660e7dceed1169038f (diff) |
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
-rw-r--r-- | include/llvm/DataLayout.h | 1 | ||||
-rw-r--r-- | 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 4cb7766387..cc02017189 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 b0ac62686d..6cf51f5a4d 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 |