From 6decfbf1332dda75c05d49d241409bc95ae7cf0e Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Mon, 9 Jul 2007 20:49:44 +0000 Subject: Initialize the IndexedModeActions array with memset before updating it with calls to setIndexedLoadAction/setIndexedStoreAction, which only update a few bits at a time. This avoids ostensible undefined behavior of operationg on values which may be trap-representations, and as a practical matter fixes errors from valgrind, which doesn't track uninitialized memory with bit granularity. llvm-svn: 38468 --- llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp') diff --git a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp index 44faf24b064..1b7b436b031 100644 --- a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp @@ -128,7 +128,9 @@ TargetLowering::TargetLowering(TargetMachine &tm) memset(OpActions, 0, sizeof(OpActions)); memset(LoadXActions, 0, sizeof(LoadXActions)); memset(&StoreXActions, 0, sizeof(StoreXActions)); - // Initialize all indexed load / store to expand. + memset(&IndexedModeActions, 0, sizeof(IndexedModeActions)); + + // Set all indexed load / store to expand. for (unsigned VT = 0; VT != (unsigned)MVT::LAST_VALUETYPE; ++VT) { for (unsigned IM = (unsigned)ISD::PRE_INC; IM != (unsigned)ISD::LAST_INDEXED_MODE; ++IM) { -- cgit v1.2.3