@@ -1176,16 +1176,12 @@ COFFObjectFile::getRelocations(const coff_section *Sec) const {
11761176
11771177#define LLVM_COFF_SWITCH_RELOC_TYPE_NAME (reloc_type ) \
11781178 case COFF::reloc_type: \
1179- Res = #reloc_type; \
1180- break ;
1179+ return #reloc_type;
11811180
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 {
11861182 switch (getMachine ()) {
11871183 case COFF::IMAGE_FILE_MACHINE_AMD64:
1188- switch (Reloc-> Type ) {
1184+ switch (Type) {
11891185 LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_AMD64_ABSOLUTE);
11901186 LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_AMD64_ADDR64);
11911187 LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_AMD64_ADDR32);
@@ -1204,11 +1200,11 @@ void COFFObjectFile::getRelocationTypeName(
12041200 LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_AMD64_PAIR);
12051201 LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_AMD64_SSPAN32);
12061202 default :
1207- Res = " Unknown" ;
1203+ return " Unknown" ;
12081204 }
12091205 break ;
12101206 case COFF::IMAGE_FILE_MACHINE_ARMNT:
1211- switch (Reloc-> Type ) {
1207+ switch (Type) {
12121208 LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM_ABSOLUTE);
12131209 LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM_ADDR32);
12141210 LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM_ADDR32NB);
@@ -1225,11 +1221,11 @@ void COFFObjectFile::getRelocationTypeName(
12251221 LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM_BRANCH24T);
12261222 LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM_BLX23T);
12271223 default :
1228- Res = " Unknown" ;
1224+ return " Unknown" ;
12291225 }
12301226 break ;
12311227 case COFF::IMAGE_FILE_MACHINE_ARM64:
1232- switch (Reloc-> Type ) {
1228+ switch (Type) {
12331229 LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM64_ABSOLUTE);
12341230 LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM64_ADDR32);
12351231 LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM64_ADDR32NB);
@@ -1248,11 +1244,11 @@ void COFFObjectFile::getRelocationTypeName(
12481244 LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM64_BRANCH19);
12491245 LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM64_BRANCH14);
12501246 default :
1251- Res = " Unknown" ;
1247+ return " Unknown" ;
12521248 }
12531249 break ;
12541250 case COFF::IMAGE_FILE_MACHINE_I386:
1255- switch (Reloc-> Type ) {
1251+ switch (Type) {
12561252 LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_I386_ABSOLUTE);
12571253 LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_I386_DIR16);
12581254 LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_I386_REL16);
@@ -1265,17 +1261,23 @@ void COFFObjectFile::getRelocationTypeName(
12651261 LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_I386_SECREL7);
12661262 LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_I386_REL32);
12671263 default :
1268- Res = " Unknown" ;
1264+ return " Unknown" ;
12691265 }
12701266 break ;
12711267 default :
1272- Res = " Unknown" ;
1268+ return " Unknown" ;
12731269 }
1274- Result.append (Res.begin (), Res.end ());
12751270}
12761271
12771272#undef LLVM_COFF_SWITCH_RELOC_TYPE_NAME
12781273
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+
12791281bool COFFObjectFile::isRelocatableObject () const {
12801282 return !DataDirectory;
12811283}
0 commit comments