CodeGen: Add CFI unrelated cast checks to the new pointer code path.
llvm-svn: 247105
diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp
index b7d1ef1..8339444 100644
--- a/clang/lib/CodeGen/CGExpr.cpp
+++ b/clang/lib/CodeGen/CGExpr.cpp
@@ -820,6 +820,14 @@
getNaturalPointeeTypeAlignment(E->getType(), Source));
}
+ if (SanOpts.has(SanitizerKind::CFIUnrelatedCast)) {
+ if (auto PT = E->getType()->getAs<PointerType>())
+ EmitVTablePtrCheckForCast(PT->getPointeeType(), Addr.getPointer(),
+ /*MayBeNull=*/true,
+ CodeGenFunction::CFITCK_UnrelatedCast,
+ CE->getLocStart());
+ }
+
return Builder.CreateBitCast(Addr, ConvertType(E->getType()));
}
break;