@@ -1176,16 +1176,12 @@ COFFObjectFile::getRelocations(const coff_section *Sec) const {
1176
1176
1177
1177
#define LLVM_COFF_SWITCH_RELOC_TYPE_NAME (reloc_type ) \
1178
1178
case COFF::reloc_type: \
1179
- Res = #reloc_type; \
1180
- break ;
1179
+ return #reloc_type;
1181
1180
1182
- void COFFObjectFile::getRelocationTypeName (
1183
- DataRefImpl Rel, SmallVectorImpl<char > &Result) const {
1184
- const coff_relocation *Reloc = toRel (Rel);
1185
- StringRef Res;
1181
+ StringRef COFFObjectFile::getRelocationTypeName (uint16_t Type) const {
1186
1182
switch (getMachine ()) {
1187
1183
case COFF::IMAGE_FILE_MACHINE_AMD64:
1188
- switch (Reloc-> Type ) {
1184
+ switch (Type) {
1189
1185
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_AMD64_ABSOLUTE);
1190
1186
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_AMD64_ADDR64);
1191
1187
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_AMD64_ADDR32);
@@ -1204,11 +1200,11 @@ void COFFObjectFile::getRelocationTypeName(
1204
1200
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_AMD64_PAIR);
1205
1201
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_AMD64_SSPAN32);
1206
1202
default :
1207
- Res = " Unknown" ;
1203
+ return " Unknown" ;
1208
1204
}
1209
1205
break ;
1210
1206
case COFF::IMAGE_FILE_MACHINE_ARMNT:
1211
- switch (Reloc-> Type ) {
1207
+ switch (Type) {
1212
1208
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM_ABSOLUTE);
1213
1209
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM_ADDR32);
1214
1210
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM_ADDR32NB);
@@ -1225,11 +1221,11 @@ void COFFObjectFile::getRelocationTypeName(
1225
1221
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM_BRANCH24T);
1226
1222
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM_BLX23T);
1227
1223
default :
1228
- Res = " Unknown" ;
1224
+ return " Unknown" ;
1229
1225
}
1230
1226
break ;
1231
1227
case COFF::IMAGE_FILE_MACHINE_ARM64:
1232
- switch (Reloc-> Type ) {
1228
+ switch (Type) {
1233
1229
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM64_ABSOLUTE);
1234
1230
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM64_ADDR32);
1235
1231
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM64_ADDR32NB);
@@ -1248,11 +1244,11 @@ void COFFObjectFile::getRelocationTypeName(
1248
1244
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM64_BRANCH19);
1249
1245
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM64_BRANCH14);
1250
1246
default :
1251
- Res = " Unknown" ;
1247
+ return " Unknown" ;
1252
1248
}
1253
1249
break ;
1254
1250
case COFF::IMAGE_FILE_MACHINE_I386:
1255
- switch (Reloc-> Type ) {
1251
+ switch (Type) {
1256
1252
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_I386_ABSOLUTE);
1257
1253
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_I386_DIR16);
1258
1254
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_I386_REL16);
@@ -1265,17 +1261,23 @@ void COFFObjectFile::getRelocationTypeName(
1265
1261
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_I386_SECREL7);
1266
1262
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_I386_REL32);
1267
1263
default :
1268
- Res = " Unknown" ;
1264
+ return " Unknown" ;
1269
1265
}
1270
1266
break ;
1271
1267
default :
1272
- Res = " Unknown" ;
1268
+ return " Unknown" ;
1273
1269
}
1274
- Result.append (Res.begin (), Res.end ());
1275
1270
}
1276
1271
1277
1272
#undef LLVM_COFF_SWITCH_RELOC_TYPE_NAME
1278
1273
1274
+ void COFFObjectFile::getRelocationTypeName (
1275
+ DataRefImpl Rel, SmallVectorImpl<char > &Result) const {
1276
+ const coff_relocation *Reloc = toRel (Rel);
1277
+ StringRef Res = getRelocationTypeName (Reloc->Type );
1278
+ Result.append (Res.begin (), Res.end ());
1279
+ }
1280
+
1279
1281
bool COFFObjectFile::isRelocatableObject () const {
1280
1282
return !DataDirectory;
1281
1283
}
0 commit comments