@@ -4667,13 +4667,6 @@ struct VarArgHelperBase : public VarArgHelper {
4667
4667
return IRB.CreateAdd (Base, ConstantInt::get (MS.IntptrTy , ArgOffset));
4668
4668
}
4669
4669
4670
- Value *getOriginPtrForVAArgument (IRBuilder<> &IRB, int ArgOffset) {
4671
- Value *Base = IRB.CreatePointerCast (MS.VAArgOriginTLS , MS.IntptrTy );
4672
- Base = IRB.CreateAdd (Base, ConstantInt::get (MS.IntptrTy , ArgOffset));
4673
- return IRB.CreateIntToPtr (Base, PointerType::get (MS.OriginTy , 0 ),
4674
- " _msarg_va_o" );
4675
- }
4676
-
4677
4670
// / Compute the shadow address for a given va_arg.
4678
4671
Value *getShadowPtrForVAArgument (Type *Ty, IRBuilder<> &IRB,
4679
4672
unsigned ArgOffset, unsigned ArgSize) {
@@ -4687,7 +4680,7 @@ struct VarArgHelperBase : public VarArgHelper {
4687
4680
}
4688
4681
4689
4682
// / Compute the origin address for a given va_arg.
4690
- Value *getOriginPtrForVAArgument (Type *Ty, IRBuilder<> &IRB, int ArgOffset) {
4683
+ Value *getOriginPtrForVAArgument (IRBuilder<> &IRB, int ArgOffset) {
4691
4684
Value *Base = IRB.CreatePointerCast (MS.VAArgOriginTLS , MS.IntptrTy );
4692
4685
// getOriginPtrForVAArgument() is always called after
4693
4686
// getShadowPtrForVAArgument(), so __msan_va_arg_origin_tls can never
@@ -4793,7 +4786,7 @@ struct VarArgAMD64Helper : public VarArgHelperBase {
4793
4786
RealTy, IRB, OverflowOffset, alignTo (ArgSize, 8 ));
4794
4787
Value *OriginBase = nullptr ;
4795
4788
if (MS.TrackOrigins )
4796
- OriginBase = getOriginPtrForVAArgument (RealTy, IRB, OverflowOffset);
4789
+ OriginBase = getOriginPtrForVAArgument (IRB, OverflowOffset);
4797
4790
OverflowOffset += alignTo (ArgSize, 8 );
4798
4791
if (!ShadowBase)
4799
4792
continue ;
@@ -4819,14 +4812,14 @@ struct VarArgAMD64Helper : public VarArgHelperBase {
4819
4812
ShadowBase =
4820
4813
getShadowPtrForVAArgument (A->getType (), IRB, GpOffset, 8 );
4821
4814
if (MS.TrackOrigins )
4822
- OriginBase = getOriginPtrForVAArgument (A-> getType (), IRB, GpOffset);
4815
+ OriginBase = getOriginPtrForVAArgument (IRB, GpOffset);
4823
4816
GpOffset += 8 ;
4824
4817
break ;
4825
4818
case AK_FloatingPoint:
4826
4819
ShadowBase =
4827
4820
getShadowPtrForVAArgument (A->getType (), IRB, FpOffset, 16 );
4828
4821
if (MS.TrackOrigins )
4829
- OriginBase = getOriginPtrForVAArgument (A-> getType (), IRB, FpOffset);
4822
+ OriginBase = getOriginPtrForVAArgument (IRB, FpOffset);
4830
4823
FpOffset += 16 ;
4831
4824
break ;
4832
4825
case AK_Memory:
@@ -4836,8 +4829,7 @@ struct VarArgAMD64Helper : public VarArgHelperBase {
4836
4829
ShadowBase =
4837
4830
getShadowPtrForVAArgument (A->getType (), IRB, OverflowOffset, 8 );
4838
4831
if (MS.TrackOrigins )
4839
- OriginBase =
4840
- getOriginPtrForVAArgument (A->getType (), IRB, OverflowOffset);
4832
+ OriginBase = getOriginPtrForVAArgument (IRB, OverflowOffset);
4841
4833
OverflowOffset += alignTo (ArgSize, 8 );
4842
4834
}
4843
4835
// Take fixed arguments into account for GpOffset and FpOffset,
0 commit comments