Skip to content

Commit 4ace600

Browse files
committed
[OpaquePtr] Remove uses of CreateStructGEP() without element type
Remove uses of to-be-deprecated API.
1 parent be8159b commit 4ace600

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

clang/lib/CodeGen/CGBlocks.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1375,7 +1375,7 @@ static llvm::Constant *buildGlobalBlock(CodeGenModule &CGM,
13751375
llvm::IRBuilder<> b(llvm::BasicBlock::Create(CGM.getLLVMContext(), "entry",
13761376
Init));
13771377
b.CreateAlignedStore(CGM.getNSConcreteGlobalBlock(),
1378-
b.CreateStructGEP(literal, 0),
1378+
b.CreateStructGEP(literal->getValueType(), literal, 0),
13791379
CGM.getPointerAlign().getAsAlign());
13801380
b.CreateRetVoid();
13811381
// We can't use the normal LLVM global initialisation array, because we

clang/lib/CodeGen/CGObjCGNU.cpp

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -945,7 +945,8 @@ class CGObjCGNUstep2 : public CGObjCGNUstep {
945945
/// Generate the name of a symbol for a reference to a class. Accesses to
946946
/// classes should be indirected via this.
947947

948-
typedef std::pair<std::string, std::pair<llvm::Constant*, int>> EarlyInitPair;
948+
typedef std::pair<std::string, std::pair<llvm::GlobalVariable*, int>>
949+
EarlyInitPair;
949950
std::vector<EarlyInitPair> EarlyInitList;
950951

951952
std::string SymbolForClassRef(StringRef Name, bool isWeak) {
@@ -1096,7 +1097,7 @@ class CGObjCGNUstep2 : public CGObjCGNUstep {
10961097
}
10971098
}
10981099
}
1099-
auto *ObjCStrGV =
1100+
llvm::GlobalVariable *ObjCStrGV =
11001101
Fields.finishAndCreateGlobal(
11011102
isNamed ? StringRef(StringName) : ".objc_string",
11021103
Align, false, isNamed ? llvm::GlobalValue::LinkOnceODRLinkage
@@ -1107,7 +1108,7 @@ class CGObjCGNUstep2 : public CGObjCGNUstep {
11071108
ObjCStrGV->setVisibility(llvm::GlobalValue::HiddenVisibility);
11081109
}
11091110
if (CGM.getTriple().isOSBinFormatCOFF()) {
1110-
std::pair<llvm::Constant*, int> v{ObjCStrGV, 0};
1111+
std::pair<llvm::GlobalVariable*, int> v{ObjCStrGV, 0};
11111112
EarlyInitList.emplace_back(Sym, v);
11121113
}
11131114
llvm::Constant *ObjCStr = llvm::ConstantExpr::getBitCast(ObjCStrGV, IdTy);
@@ -1654,9 +1655,10 @@ class CGObjCGNUstep2 : public CGObjCGNUstep {
16541655
for (const auto &lateInit : EarlyInitList) {
16551656
auto *global = TheModule.getGlobalVariable(lateInit.first);
16561657
if (global) {
1658+
llvm::GlobalVariable *GV = lateInit.second.first;
16571659
b.CreateAlignedStore(
16581660
global,
1659-
b.CreateStructGEP(lateInit.second.first, lateInit.second.second),
1661+
b.CreateStructGEP(GV->getValueType(), GV, lateInit.second.second),
16601662
CGM.getPointerAlign().getAsAlign());
16611663
}
16621664
}
@@ -1938,7 +1940,7 @@ class CGObjCGNUstep2 : public CGObjCGNUstep {
19381940
// struct objc_property_list *properties
19391941
classFields.add(GeneratePropertyList(OID, classDecl));
19401942

1941-
auto *classStruct =
1943+
llvm::GlobalVariable *classStruct =
19421944
classFields.finishAndCreateGlobal(SymbolForClass(className),
19431945
CGM.getPointerAlign(), false, llvm::GlobalValue::ExternalLinkage);
19441946

@@ -1949,12 +1951,12 @@ class CGObjCGNUstep2 : public CGObjCGNUstep {
19491951
if (IsCOFF) {
19501952
// we can't import a class struct.
19511953
if (OID->getClassInterface()->hasAttr<DLLExportAttr>()) {
1952-
cast<llvm::GlobalValue>(classStruct)->setDLLStorageClass(llvm::GlobalValue::DLLExportStorageClass);
1954+
classStruct->setDLLStorageClass(llvm::GlobalValue::DLLExportStorageClass);
19531955
cast<llvm::GlobalValue>(classRefSymbol)->setDLLStorageClass(llvm::GlobalValue::DLLExportStorageClass);
19541956
}
19551957

19561958
if (SuperClass) {
1957-
std::pair<llvm::Constant*, int> v{classStruct, 1};
1959+
std::pair<llvm::GlobalVariable*, int> v{classStruct, 1};
19581960
EarlyInitList.emplace_back(std::string(SuperClass->getName()),
19591961
std::move(v));
19601962
}

0 commit comments

Comments
 (0)