SWDEV-470698 - fix formatting, add format check workflow (#657)
This commit is contained in:
کامیت شده توسط
GitHub
والد
5840940caa
کامیت
f7338717ae
@@ -31,38 +31,38 @@ static constexpr size_t commentSize_ = strlen(comment_) + 1;
|
||||
|
||||
// Elf::RODATA, ".rodata", 1, SHT_PROGBITS, SHF_ALLOC,
|
||||
static const amd::Elf::SymbolInfo rodataSymbolInfos_[] = {
|
||||
{ ".rodata", nullptr, 0, "data__fmetadata", "fmetatdata", strlen("fmetatdata") + 1 },
|
||||
{ ".rodata", nullptr, 0, "data__amdil", "amdildata", strlen("amdildata") + 1 },
|
||||
{ ".rodata", nullptr, 0, "data__metadata", "metadata", strlen("metadata") + 1 },
|
||||
{ ".rodata", nullptr, 0, "data__header", "header", strlen("header") + 1 },
|
||||
{ ".rodata", nullptr, 0, "data__global", "global", strlen("global") + 1 },
|
||||
{ ".rodata", nullptr, 0, "data__randome0", "xu\0e\0\0l", sizeof("xu\0e\0\0l") }, // binary
|
||||
{ ".rodata", nullptr, 0, "data__randome1", "\0j\0\0w\0", sizeof("\0j\0\0w\0") }, // binary
|
||||
};
|
||||
{".rodata", nullptr, 0, "data__fmetadata", "fmetatdata", strlen("fmetatdata") + 1},
|
||||
{".rodata", nullptr, 0, "data__amdil", "amdildata", strlen("amdildata") + 1},
|
||||
{".rodata", nullptr, 0, "data__metadata", "metadata", strlen("metadata") + 1},
|
||||
{".rodata", nullptr, 0, "data__header", "header", strlen("header") + 1},
|
||||
{".rodata", nullptr, 0, "data__global", "global", strlen("global") + 1},
|
||||
{".rodata", nullptr, 0, "data__randome0", "xu\0e\0\0l", sizeof("xu\0e\0\0l")}, // binary
|
||||
{".rodata", nullptr, 0, "data__randome1", "\0j\0\0w\0", sizeof("\0j\0\0w\0")}, // binary
|
||||
};
|
||||
|
||||
static constexpr size_t rodataSymbolInfosSize_ = sizeof(rodataSymbolInfos_)
|
||||
/ sizeof(rodataSymbolInfos_[0]);
|
||||
static constexpr size_t rodataSymbolInfosSize_ =
|
||||
sizeof(rodataSymbolInfos_) / sizeof(rodataSymbolInfos_[0]);
|
||||
|
||||
// Elf::COMMENT, ".comment", 1, SHT_PROGBITS, 0,
|
||||
static const amd::Elf::SymbolInfo commentSymbolInfos_[] = {
|
||||
{ ".comment", nullptr, 0, "compile", "-g -I/opt/include", strlen("-g -I/opt/include") + 1 },
|
||||
{ ".comment", nullptr, 0, "link", "-g -l/opt/rocm/lib", strlen("-g -l/opt/rocm/lib") + 1 },
|
||||
};
|
||||
static constexpr size_t commentSymbolInfosSize_ = sizeof(commentSymbolInfos_)
|
||||
/ sizeof(commentSymbolInfos_[0]);
|
||||
{".comment", nullptr, 0, "compile", "-g -I/opt/include", strlen("-g -I/opt/include") + 1},
|
||||
{".comment", nullptr, 0, "link", "-g -l/opt/rocm/lib", strlen("-g -l/opt/rocm/lib") + 1},
|
||||
};
|
||||
static constexpr size_t commentSymbolInfosSize_ =
|
||||
sizeof(commentSymbolInfos_) / sizeof(commentSymbolInfos_[0]);
|
||||
|
||||
struct NoteInfo {
|
||||
const char *noteName;
|
||||
const char *noteDesc;
|
||||
const char* noteName;
|
||||
const char* noteDesc;
|
||||
size_t descSize;
|
||||
};
|
||||
};
|
||||
|
||||
static constexpr NoteInfo noteInfos_[] = {
|
||||
{ "notename0", "sjfasdfe2Afs", strlen("sjfasdfe2Afs") + 1 },
|
||||
{ "notename1", "AsdmvdfFfkd", strlen("AsdmvdfFfkd") + 1 },
|
||||
{ "notename2", "d\0kelH\0D", sizeof("d\0kelH\0D") }, // binary
|
||||
{ "notename3", "\0F\0kA\0", sizeof("\0F\0kA\0") }, // binary
|
||||
};
|
||||
{"notename0", "sjfasdfe2Afs", strlen("sjfasdfe2Afs") + 1},
|
||||
{"notename1", "AsdmvdfFfkd", strlen("AsdmvdfFfkd") + 1},
|
||||
{"notename2", "d\0kelH\0D", sizeof("d\0kelH\0D")}, // binary
|
||||
{"notename3", "\0F\0kA\0", sizeof("\0F\0kA\0")}, // binary
|
||||
};
|
||||
|
||||
static const size_t noteInfosSize_ = sizeof(noteInfos_) / sizeof(noteInfos_[0]);
|
||||
|
||||
@@ -87,8 +87,7 @@ bool set(amd::Elf* elf) {
|
||||
|
||||
for (i = 0; i < rodataSymbolInfosSize_; i++) {
|
||||
auto& info = rodataSymbolInfos_[i];
|
||||
if (!elf->addSymbol(amd::Elf::RODATA, info.sym_name.c_str(),
|
||||
info.address, info.size)) {
|
||||
if (!elf->addSymbol(amd::Elf::RODATA, info.sym_name.c_str(), info.address, info.size)) {
|
||||
LogPrintfError("elf->addSymbol(RODATA) failed at index %zu", i);
|
||||
return false;
|
||||
}
|
||||
@@ -99,8 +98,7 @@ bool set(amd::Elf* elf) {
|
||||
|
||||
for (i = 0; i < commentSymbolInfosSize_; i++) {
|
||||
auto& info = commentSymbolInfos_[i];
|
||||
if (!elf->addSymbol(amd::Elf::COMMENT, info.sym_name.c_str(),
|
||||
info.address, info.size)) {
|
||||
if (!elf->addSymbol(amd::Elf::COMMENT, info.sym_name.c_str(), info.address, info.size)) {
|
||||
LogPrintfError("elf->addSymbol(COMMENT) failed at index %zu", i);
|
||||
return false;
|
||||
}
|
||||
@@ -123,14 +121,14 @@ bool set(amd::Elf* elf) {
|
||||
}
|
||||
|
||||
bool verify(amd::Elf* elf) {
|
||||
uint16_t machine = amd::Elf::OCL_TARGETS_LAST;
|
||||
amd::Elf::ElfPlatform platform = amd::Elf::LAST_PLATFORM;
|
||||
if (!elf->getTarget(machine, platform)) {
|
||||
LogError("elf->getTarget() failed");
|
||||
return false;
|
||||
}
|
||||
uint16_t machine = amd::Elf::OCL_TARGETS_LAST;
|
||||
amd::Elf::ElfPlatform platform = amd::Elf::LAST_PLATFORM;
|
||||
if (!elf->getTarget(machine, platform)) {
|
||||
LogError("elf->getTarget() failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
LogPrintfInfo("getTarget(machine=%u, platform=%d)", machine, platform);
|
||||
LogPrintfInfo("getTarget(machine=%u, platform=%d)", machine, platform);
|
||||
|
||||
if (machine != target_) {
|
||||
LogPrintfError("machine(%u) != target_(%d)", machine, target_);
|
||||
@@ -145,167 +143,156 @@ bool verify(amd::Elf* elf) {
|
||||
uint16_t type = ET_NONE;
|
||||
|
||||
if (!elf->getType(type)) {
|
||||
LogError("elf->elf() failed");
|
||||
return false;
|
||||
}
|
||||
LogError("elf->elf() failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
LogPrintfInfo("getType(%u)", type);
|
||||
|
||||
if(type != ET_EXEC) {
|
||||
LogError("type != ET_EXEC");
|
||||
return false;
|
||||
}
|
||||
if (type != ET_EXEC) {
|
||||
LogError("type != ET_EXEC");
|
||||
return false;
|
||||
}
|
||||
|
||||
char* buffer = nullptr;
|
||||
size_t size = 0;
|
||||
|
||||
if (!elf->getSection(amd::Elf::COMMENT, &buffer, &size)) {
|
||||
LogError("elf->getSection(COMMENT) failed");
|
||||
return false;
|
||||
}
|
||||
if (!elf->getSection(amd::Elf::COMMENT, &buffer, &size)) {
|
||||
LogError("elf->getSection(COMMENT) failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
LogPrintfInfo("getSection(COMMENT, buffer=%s, size=%zu)", buffer, size);
|
||||
LogPrintfInfo("getSection(COMMENT, buffer=%s, size=%zu)", buffer, size);
|
||||
|
||||
if(size < commentSize_ || memcmp(comment_, buffer, commentSize_) != 0) {
|
||||
LogPrintfError("Not matched section: size = %zu, buffer = %s, expected: %zu, %s",
|
||||
size, buffer, commentSize_, comment_);
|
||||
return false;
|
||||
}
|
||||
if (size < commentSize_ || memcmp(comment_, buffer, commentSize_) != 0) {
|
||||
LogPrintfError("Not matched section: size = %zu, buffer = %s, expected: %zu, %s", size, buffer,
|
||||
commentSize_, comment_);
|
||||
return false;
|
||||
}
|
||||
|
||||
LogInfo("Reading rodataSymbolInfo");
|
||||
LogInfo("Reading rodataSymbolInfo");
|
||||
|
||||
size_t i = 0;
|
||||
buffer = nullptr;
|
||||
size = 0;
|
||||
for (i = 0; i < rodataSymbolInfosSize_; i++) {
|
||||
auto& info = rodataSymbolInfos_[i];
|
||||
if (!elf->getSymbol(amd::Elf::RODATA, info.sym_name.c_str(),
|
||||
&buffer, &size)) {
|
||||
LogPrintfError("elf->getSymbol(RODATA, %s) failed at index %zu", info.sym_name.c_str(), i);
|
||||
return false;
|
||||
}
|
||||
LogPrintfInfo("getSymbol(amd::Elf::RODATA, sym_name=%s, buffer=%s, size=%zu)",
|
||||
info.sym_name.c_str(), buffer, size); // Will possibly print part of buffer
|
||||
size_t i = 0;
|
||||
buffer = nullptr;
|
||||
size = 0;
|
||||
for (i = 0; i < rodataSymbolInfosSize_; i++) {
|
||||
auto& info = rodataSymbolInfos_[i];
|
||||
if (!elf->getSymbol(amd::Elf::RODATA, info.sym_name.c_str(), &buffer, &size)) {
|
||||
LogPrintfError("elf->getSymbol(RODATA, %s) failed at index %zu", info.sym_name.c_str(), i);
|
||||
return false;
|
||||
}
|
||||
LogPrintfInfo("getSymbol(amd::Elf::RODATA, sym_name=%s, buffer=%s, size=%zu)",
|
||||
info.sym_name.c_str(), buffer, size); // Will possibly print part of buffer
|
||||
|
||||
if(size != info.size || memcmp(buffer, info.address, info.size)) {
|
||||
LogPrintfError("Not matched symbol(%s): size = %zu, buff = %s, expected: %zu, %s",
|
||||
info.sym_name.c_str(), size, buffer, info.size, info.address);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (size != info.size || memcmp(buffer, info.address, info.size)) {
|
||||
LogPrintfError("Not matched symbol(%s): size = %zu, buff = %s, expected: %zu, %s",
|
||||
info.sym_name.c_str(), size, buffer, info.size, info.address);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
LogInfo("Succeeded");
|
||||
LogInfo("reading commentSymbolInfo");
|
||||
LogInfo("Succeeded");
|
||||
LogInfo("reading commentSymbolInfo");
|
||||
|
||||
buffer = nullptr;
|
||||
size = 0;
|
||||
for (i = 0; i < commentSymbolInfosSize_; i++) {
|
||||
auto& info = commentSymbolInfos_[i];
|
||||
if (!elf->getSymbol(amd::Elf::COMMENT, info.sym_name.c_str(),
|
||||
&buffer, &size)) {
|
||||
LogPrintfError("elf->getSymbol(COMMENT, %s) failed at index %zu", info.sym_name.c_str(), i);
|
||||
return false;
|
||||
}
|
||||
LogPrintfInfo("getSymbol(COMMENT, sym_name=%s, buffer=%s, size=%zu)",
|
||||
info.sym_name.c_str(), buffer, size); // Will possibly print part of buffer
|
||||
if(size != info.size || memcmp(buffer, info.address, info.size)) {
|
||||
LogPrintfError("Not matched symbol(%s): size = %zu, buff = %s, expected: %zu, %s",
|
||||
info.sym_name.c_str(), size, buffer, info.size, info.address);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
buffer = nullptr;
|
||||
size = 0;
|
||||
for (i = 0; i < commentSymbolInfosSize_; i++) {
|
||||
auto& info = commentSymbolInfos_[i];
|
||||
if (!elf->getSymbol(amd::Elf::COMMENT, info.sym_name.c_str(), &buffer, &size)) {
|
||||
LogPrintfError("elf->getSymbol(COMMENT, %s) failed at index %zu", info.sym_name.c_str(), i);
|
||||
return false;
|
||||
}
|
||||
LogPrintfInfo("getSymbol(COMMENT, sym_name=%s, buffer=%s, size=%zu)", info.sym_name.c_str(),
|
||||
buffer, size); // Will possibly print part of buffer
|
||||
if (size != info.size || memcmp(buffer, info.address, info.size)) {
|
||||
LogPrintfError("Not matched symbol(%s): size = %zu, buff = %s, expected: %zu, %s",
|
||||
info.sym_name.c_str(), size, buffer, info.size, info.address);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Test another way
|
||||
auto symbolNum = elf->getSymbolNum();
|
||||
if (symbolNum != (rodataSymbolInfosSize_ + commentSymbolInfosSize_)) {
|
||||
LogPrintfError("Not matched: symbolNum(%u) != rodataSymbolInfosSize_(%u) +" \
|
||||
" commentSymbolInfosSize_(%u)",
|
||||
symbolNum, rodataSymbolInfosSize_, commentSymbolInfosSize_);
|
||||
return false;
|
||||
}
|
||||
// Test another way
|
||||
auto symbolNum = elf->getSymbolNum();
|
||||
if (symbolNum != (rodataSymbolInfosSize_ + commentSymbolInfosSize_)) {
|
||||
LogPrintfError(
|
||||
"Not matched: symbolNum(%u) != rodataSymbolInfosSize_(%u) +"
|
||||
" commentSymbolInfosSize_(%u)",
|
||||
symbolNum, rodataSymbolInfosSize_, commentSymbolInfosSize_);
|
||||
return false;
|
||||
}
|
||||
|
||||
for (i = 0; i < rodataSymbolInfosSize_; i++) {
|
||||
auto &info = rodataSymbolInfos_[i];
|
||||
amd::Elf::SymbolInfo symInfo;
|
||||
for (i = 0; i < rodataSymbolInfosSize_; i++) {
|
||||
auto& info = rodataSymbolInfos_[i];
|
||||
amd::Elf::SymbolInfo symInfo;
|
||||
|
||||
if (!elf->getSymbolInfo(i, &symInfo)) {
|
||||
LogPrintfError("getSymbolInfo(%zu) failed", i);
|
||||
return false;
|
||||
}
|
||||
LogPrintfInfo("getSymbolInfo(%zu): amd::Elf::RODATA: sec_name=%s, sym_name=%s, " \
|
||||
"address=%s, size=%lu, sec_addr=%s, sec_size=%lu)", i,
|
||||
symInfo.sec_name.c_str(),
|
||||
symInfo.sym_name.c_str(),
|
||||
symInfo.address, // Will possibly print part of buffer
|
||||
symInfo.size,
|
||||
symInfo.sec_addr,
|
||||
symInfo.sec_size);
|
||||
if (symInfo.sec_name == info.sec_name &&
|
||||
symInfo.sym_name == info.sym_name &&
|
||||
symInfo.size == info.size &&
|
||||
::memcmp(symInfo.address, info.address, info.size) == 0) {
|
||||
continue;
|
||||
}
|
||||
LogPrintfError("getSymbolInfo(%zu) returned not matched", i);
|
||||
return false;
|
||||
}
|
||||
if (!elf->getSymbolInfo(i, &symInfo)) {
|
||||
LogPrintfError("getSymbolInfo(%zu) failed", i);
|
||||
return false;
|
||||
}
|
||||
LogPrintfInfo(
|
||||
"getSymbolInfo(%zu): amd::Elf::RODATA: sec_name=%s, sym_name=%s, "
|
||||
"address=%s, size=%lu, sec_addr=%s, sec_size=%lu)",
|
||||
i, symInfo.sec_name.c_str(), symInfo.sym_name.c_str(),
|
||||
symInfo.address, // Will possibly print part of buffer
|
||||
symInfo.size, symInfo.sec_addr, symInfo.sec_size);
|
||||
if (symInfo.sec_name == info.sec_name && symInfo.sym_name == info.sym_name &&
|
||||
symInfo.size == info.size && ::memcmp(symInfo.address, info.address, info.size) == 0) {
|
||||
continue;
|
||||
}
|
||||
LogPrintfError("getSymbolInfo(%zu) returned not matched", i);
|
||||
return false;
|
||||
}
|
||||
|
||||
for (; i < symbolNum; i++) {
|
||||
auto &info = commentSymbolInfos_[i-rodataSymbolInfosSize_];
|
||||
amd::Elf::SymbolInfo symInfo;
|
||||
for (; i < symbolNum; i++) {
|
||||
auto& info = commentSymbolInfos_[i - rodataSymbolInfosSize_];
|
||||
amd::Elf::SymbolInfo symInfo;
|
||||
|
||||
if (!elf->getSymbolInfo(i, &symInfo)) {
|
||||
LogPrintfError("getSymbolInfo(%zu) failed", i);
|
||||
return false;
|
||||
}
|
||||
LogPrintfInfo("getSymbolInfo(%zu): amd::Elf::COMMENT: sec_name=%s, sym_name=%s, " \
|
||||
"address=%s, size=%lu, sec_addr=%s, sec_size=%lu)", i,
|
||||
symInfo.sec_name.c_str(),
|
||||
symInfo.sym_name.c_str(),
|
||||
symInfo.address, // Will possibly print part of buffer
|
||||
symInfo.size,
|
||||
symInfo.sec_addr,
|
||||
symInfo.sec_size);
|
||||
if (symInfo.sec_name == info.sec_name &&
|
||||
symInfo.sym_name == info.sym_name &&
|
||||
symInfo.size == info.size &&
|
||||
::memcmp(symInfo.address, info.address, info.size) == 0) {
|
||||
continue;
|
||||
}
|
||||
LogPrintfError("getSymbolInfo(%zu) returned not matched", i);
|
||||
return false;
|
||||
}
|
||||
if (!elf->getSymbolInfo(i, &symInfo)) {
|
||||
LogPrintfError("getSymbolInfo(%zu) failed", i);
|
||||
return false;
|
||||
}
|
||||
LogPrintfInfo(
|
||||
"getSymbolInfo(%zu): amd::Elf::COMMENT: sec_name=%s, sym_name=%s, "
|
||||
"address=%s, size=%lu, sec_addr=%s, sec_size=%lu)",
|
||||
i, symInfo.sec_name.c_str(), symInfo.sym_name.c_str(),
|
||||
symInfo.address, // Will possibly print part of buffer
|
||||
symInfo.size, symInfo.sec_addr, symInfo.sec_size);
|
||||
if (symInfo.sec_name == info.sec_name && symInfo.sym_name == info.sym_name &&
|
||||
symInfo.size == info.size && ::memcmp(symInfo.address, info.address, info.size) == 0) {
|
||||
continue;
|
||||
}
|
||||
LogPrintfError("getSymbolInfo(%zu) returned not matched", i);
|
||||
return false;
|
||||
}
|
||||
|
||||
LogInfo("Succeeded");
|
||||
LogError("Reading noteInfos");
|
||||
LogInfo("Succeeded");
|
||||
LogError("Reading noteInfos");
|
||||
|
||||
buffer = nullptr;
|
||||
size = 0;
|
||||
for (i = 0; i < noteInfosSize_; i++) {
|
||||
auto& info = noteInfos_[i];
|
||||
if (!elf->getNote(info.noteName, &buffer, &size)) {
|
||||
LogPrintfError("elf->getNote(%s) failed at index %zu", info.noteName, i);
|
||||
return false;
|
||||
}
|
||||
// Will possibly print part of buffer
|
||||
LogPrintfInfo("getNote(noteName=%s, buffer=%s, size=%zu)", info.noteName, buffer, size);
|
||||
if(size != info.descSize || memcmp(buffer, info.noteDesc, info.descSize)) {
|
||||
LogPrintfError("Not matched note(%s): size = %zu, buff = %s, expected: %zu, %s",
|
||||
info.noteName, size, buffer, info.descSize, info.noteDesc);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
buffer = nullptr;
|
||||
size = 0;
|
||||
for (i = 0; i < noteInfosSize_; i++) {
|
||||
auto& info = noteInfos_[i];
|
||||
if (!elf->getNote(info.noteName, &buffer, &size)) {
|
||||
LogPrintfError("elf->getNote(%s) failed at index %zu", info.noteName, i);
|
||||
return false;
|
||||
}
|
||||
// Will possibly print part of buffer
|
||||
LogPrintfInfo("getNote(noteName=%s, buffer=%s, size=%zu)", info.noteName, buffer, size);
|
||||
if (size != info.descSize || memcmp(buffer, info.noteDesc, info.descSize)) {
|
||||
LogPrintfError("Not matched note(%s): size = %zu, buff = %s, expected: %zu, %s",
|
||||
info.noteName, size, buffer, info.descSize, info.noteDesc);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
LogPrintfInfo("%s: Succeeded", __func__);
|
||||
LogPrintfInfo("%s: Succeeded", __func__);
|
||||
|
||||
return true;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool test(unsigned char eclass = ELFCLASS64, const char *outFile =
|
||||
nullptr) {
|
||||
amd::Elf *writer = new amd::Elf(eclass, nullptr, 0, outFile,
|
||||
amd::Elf::ELF_C_WRITE);
|
||||
amd::Elf *reader = nullptr;
|
||||
bool test(unsigned char eclass = ELFCLASS64, const char* outFile = nullptr) {
|
||||
amd::Elf* writer = new amd::Elf(eclass, nullptr, 0, outFile, amd::Elf::ELF_C_WRITE);
|
||||
amd::Elf* reader = nullptr;
|
||||
bool ret = false;
|
||||
do {
|
||||
if ((writer == nullptr) || !writer->isSuccessful()) {
|
||||
@@ -323,15 +310,14 @@ bool test(unsigned char eclass = ELFCLASS64, const char *outFile =
|
||||
break;
|
||||
}
|
||||
|
||||
char *buff = nullptr;
|
||||
char* buff = nullptr;
|
||||
unsigned long len = 0;
|
||||
if (writer->dumpImage(&buff, &len)) {
|
||||
LogPrintfInfo("dumpImage succeed: buff=%p, len=%u)", buff, len);
|
||||
|
||||
reader = new amd::Elf(eclass, buff, len, nullptr,
|
||||
amd::Elf::ELF_C_READ);
|
||||
reader = new amd::Elf(eclass, buff, len, nullptr, amd::Elf::ELF_C_READ);
|
||||
|
||||
delete [] buff;
|
||||
delete[] buff;
|
||||
|
||||
if ((reader == nullptr) || !reader->isSuccessful()) {
|
||||
LogError("Creating reader ELF object failed");
|
||||
@@ -351,7 +337,7 @@ bool test(unsigned char eclass = ELFCLASS64, const char *outFile =
|
||||
delete reader;
|
||||
}
|
||||
LogPrintfError("%s(%s, %s): %s", __func__, eclass == ELFCLASS64 ? "ELFCLASS64" : "ELFCLASS32",
|
||||
outFile ? outFile : "nullptr", ret ? "Succeeded" : "Failed");
|
||||
outFile ? outFile : "nullptr", ret ? "Succeeded" : "Failed");
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -359,18 +345,16 @@ int main() {
|
||||
bool ret = false;
|
||||
amd::Flag::init();
|
||||
unsigned char eclass = LP64_SWITCH(ELFCLASS32, ELFCLASS64);
|
||||
const char *outFile = eclass == ELFCLASS32 ? "elf32.bin" : "elf64.bin";
|
||||
const char* outFile = eclass == ELFCLASS32 ? "elf32.bin" : "elf64.bin";
|
||||
|
||||
ret = test(eclass, outFile);
|
||||
printf("%s: test(%s, %s) %s!\n", __func__,
|
||||
eclass == ELFCLASS32 ? "ELFCLASS32" : "ELFCLASS64", outFile,
|
||||
ret ? "Succeeded" : "Failed");
|
||||
printf("%s: test(%s, %s) %s!\n", __func__, eclass == ELFCLASS32 ? "ELFCLASS32" : "ELFCLASS64",
|
||||
outFile, ret ? "Succeeded" : "Failed");
|
||||
|
||||
if (ret) {
|
||||
ret = test(eclass, nullptr);
|
||||
printf("%s: test(%s, nullptr) %s!\n", __func__,
|
||||
eclass == ELFCLASS32 ? "ELFCLASS32" : "ELFCLASS64",
|
||||
ret ? "Succeeded" : "Failed");
|
||||
eclass == ELFCLASS32 ? "ELFCLASS32" : "ELFCLASS64", ret ? "Succeeded" : "Failed");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
مرجع در شماره جدید
Block a user