Skip to content

Commit 36138d8

Browse files
committed
[NFC][msan] Declare some getShadow vars later
1 parent e68215c commit 36138d8

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1707,21 +1707,20 @@ struct MemorySanitizerVisitor : public InstVisitor<MemorySanitizerVisitor> {
17071707
}
17081708

17091709
bool FArgByVal = FArg.hasByValAttr();
1710-
bool FArgNoUndef = FArg.hasAttribute(Attribute::NoUndef);
1711-
bool FArgEagerCheck = MS.EagerChecks && !FArgByVal && FArgNoUndef;
1712-
unsigned Size =
1713-
FArg.hasByValAttr()
1714-
? DL.getTypeAllocSize(FArg.getParamByValType())
1715-
: DL.getTypeAllocSize(FArg.getType());
1710+
unsigned Size = FArgByVal
1711+
? DL.getTypeAllocSize(FArg.getParamByValType())
1712+
: DL.getTypeAllocSize(FArg.getType());
17161713

17171714
if (A == &FArg) {
17181715
bool Overflow = ArgOffset + Size > kParamTLSSize;
1716+
bool FArgEagerCheck = MS.EagerChecks && !FArgByVal &&
1717+
FArg.hasAttribute(Attribute::NoUndef);
1718+
17191719
if (FArgEagerCheck) {
17201720
*ShadowPtr = getCleanShadow(V);
17211721
setOrigin(A, getCleanOrigin());
17221722
break;
17231723
} else if (FArgByVal) {
1724-
Value *Base = getShadowPtrForArgument(&FArg, EntryIRB, ArgOffset);
17251724
// ByVal pointer itself has clean shadow. We copy the actual
17261725
// argument shadow to the underlying memory.
17271726
// Figure out maximal valid memcpy alignment.
@@ -1738,6 +1737,7 @@ struct MemorySanitizerVisitor : public InstVisitor<MemorySanitizerVisitor> {
17381737
CpShadowPtr, Constant::getNullValue(EntryIRB.getInt8Ty()),
17391738
Size, ArgAlign);
17401739
} else {
1740+
Value *Base = getShadowPtrForArgument(&FArg, EntryIRB, ArgOffset);
17411741
const Align CopyAlign = std::min(ArgAlign, kShadowTLSAlignment);
17421742
Value *Cpy = EntryIRB.CreateMemCpy(CpShadowPtr, CopyAlign, Base,
17431743
CopyAlign, Size);
@@ -1746,12 +1746,12 @@ struct MemorySanitizerVisitor : public InstVisitor<MemorySanitizerVisitor> {
17461746
}
17471747
*ShadowPtr = getCleanShadow(V);
17481748
} else {
1749-
// Shadow over TLS
1750-
Value *Base = getShadowPtrForArgument(&FArg, EntryIRB, ArgOffset);
17511749
if (Overflow) {
17521750
// ParamTLS overflow.
17531751
*ShadowPtr = getCleanShadow(V);
17541752
} else {
1753+
// Shadow over TLS
1754+
Value *Base = getShadowPtrForArgument(&FArg, EntryIRB, ArgOffset);
17551755
*ShadowPtr = EntryIRB.CreateAlignedLoad(getShadowTy(&FArg), Base,
17561756
kShadowTLSAlignment);
17571757
}

0 commit comments

Comments
 (0)