Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit bac9e46

Browse files
authored
[NFC][CodeGen][CFI] Extract CreateMetadataIdentifierForFnType (llvm#158189)
For llvm#158193
1 parent f32874f commit bac9e46

File tree

3 files changed

+12
-5
lines changed

3 files changed

+12
-5
lines changed

clang/lib/CodeGen/CGExpr.cpp

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6496,11 +6496,8 @@ RValue CodeGenFunction::EmitCall(QualType CalleeType,
64966496
SanitizerDebugLocation SanScope(this, {CheckOrdinal}, CheckHandler);
64976497
EmitSanitizerStatReport(llvm::SanStat_CFI_ICall);
64986498

6499-
llvm::Metadata *MD;
6500-
if (CGM.getCodeGenOpts().SanitizeCfiICallGeneralizePointers)
6501-
MD = CGM.CreateMetadataIdentifierGeneralized(QualType(FnType, 0));
6502-
else
6503-
MD = CGM.CreateMetadataIdentifierForType(QualType(FnType, 0));
6499+
llvm::Metadata *MD =
6500+
CGM.CreateMetadataIdentifierForFnType(QualType(FnType, 0));
65046501

65056502
llvm::Value *TypeId = llvm::MetadataAsValue::get(getLLVMContext(), MD);
65066503

clang/lib/CodeGen/CodeGenModule.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7934,6 +7934,13 @@ CodeGenModule::CreateMetadataIdentifierImpl(QualType T, MetadataTypeMap &Map,
79347934
return InternalId;
79357935
}
79367936

7937+
llvm::Metadata *CodeGenModule::CreateMetadataIdentifierForFnType(QualType T) {
7938+
assert(isa<FunctionType>(T));
7939+
if (getCodeGenOpts().SanitizeCfiICallGeneralizePointers)
7940+
return CreateMetadataIdentifierGeneralized(T);
7941+
return CreateMetadataIdentifierForType(T);
7942+
}
7943+
79377944
llvm::Metadata *CodeGenModule::CreateMetadataIdentifierForType(QualType T) {
79387945
return CreateMetadataIdentifierImpl(T, MetadataIdMap, "");
79397946
}

clang/lib/CodeGen/CodeGenModule.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1623,6 +1623,9 @@ class CodeGenModule : public CodeGenTypeCache {
16231623
/// Generate a KCFI type identifier for T.
16241624
llvm::ConstantInt *CreateKCFITypeId(QualType T, StringRef Salt);
16251625

1626+
/// Create a metadata identifier for the given function type.
1627+
llvm::Metadata *CreateMetadataIdentifierForFnType(QualType T);
1628+
16261629
/// Create a metadata identifier for the given type. This may either be an
16271630
/// MDString (for external identifiers) or a distinct unnamed MDNode (for
16281631
/// internal identifiers).

0 commit comments

Comments
 (0)