Revert "[IR] Remove the DIExpression field from DIGlobalVariable."
This reverts commit 289920 (again). I forgot to implement a Bitcode upgrade for the case where a DIGlobalVariable has not DIExpression. Unfortunately it is not possible to safely upgrade these variables without adding a flag to the bitcode record indicating which version they are. My plan of record is to roll the planned follow-up patch that adds a unit: field to DIGlobalVariable into this patch before recomitting. This way we only need one Bitcode upgrade for both changes (with a version flag in the bitcode record to safely distinguish the record formats). Sorry for the churn! llvm-svn: 289982
This commit is contained in:
@@ -210,9 +210,6 @@ private:
|
||||
SmallVectorImpl<uint64_t> &Record, unsigned Abbrev);
|
||||
void writeDIExpression(const DIExpression *N,
|
||||
SmallVectorImpl<uint64_t> &Record, unsigned Abbrev);
|
||||
void writeDIGlobalVariableExpression(const DIGlobalVariableExpression *N,
|
||||
SmallVectorImpl<uint64_t> &Record,
|
||||
unsigned Abbrev);
|
||||
void writeDIObjCProperty(const DIObjCProperty *N,
|
||||
SmallVectorImpl<uint64_t> &Record, unsigned Abbrev);
|
||||
void writeDIImportedEntity(const DIImportedEntity *N,
|
||||
@@ -1686,7 +1683,7 @@ void ModuleBitcodeWriter::writeDIGlobalVariable(
|
||||
Record.push_back(VE.getMetadataOrNullID(N->getType()));
|
||||
Record.push_back(N->isLocalToUnit());
|
||||
Record.push_back(N->isDefinition());
|
||||
Record.push_back(/* expr */ 0);
|
||||
Record.push_back(VE.getMetadataOrNullID(N->getRawExpr()));
|
||||
Record.push_back(VE.getMetadataOrNullID(N->getStaticDataMemberDeclaration()));
|
||||
Record.push_back(N->getAlignInBits());
|
||||
|
||||
@@ -1738,17 +1735,6 @@ void ModuleBitcodeWriter::writeDIExpression(const DIExpression *N,
|
||||
Record.clear();
|
||||
}
|
||||
|
||||
void ModuleBitcodeWriter::writeDIGlobalVariableExpression(
|
||||
const DIGlobalVariableExpression *N, SmallVectorImpl<uint64_t> &Record,
|
||||
unsigned Abbrev) {
|
||||
Record.push_back(N->isDistinct());
|
||||
Record.push_back(VE.getMetadataOrNullID(N->getVariable()));
|
||||
Record.push_back(VE.getMetadataOrNullID(N->getExpression()));
|
||||
|
||||
Stream.EmitRecord(bitc::METADATA_GLOBAL_VAR_EXPR, Record, Abbrev);
|
||||
Record.clear();
|
||||
}
|
||||
|
||||
void ModuleBitcodeWriter::writeDIObjCProperty(const DIObjCProperty *N,
|
||||
SmallVectorImpl<uint64_t> &Record,
|
||||
unsigned Abbrev) {
|
||||
|
||||
Reference in New Issue
Block a user