[libc-commits] [libc] [libc][test] make `str_to_float_comparison_test` independent of C++ headers. (PR #133978)
via libc-commits
libc-commits at lists.llvm.org
Tue Apr 1 15:30:41 PDT 2025
================
@@ -59,30 +57,32 @@ int checkFile(char *inputFileName, int *totalFails, int *totalBitDiffs,
int32_t curFails = 0; // Only counts actual failures, not bitdiffs.
int32_t curBitDiffs = 0; // A bitdiff is when the expected result and actual
// result are off by +/- 1 bit.
- std::string line;
- std::string num;
+ char *line = nullptr;
+ char *num = nullptr;
- std::ifstream fileStream(inputFileName, std::ifstream::in);
+ auto *fileHandle = LIBC_NAMESPACE::fopen(inputFileName, "r");
- if (!fileStream.is_open()) {
- std::cout << "file '" << inputFileName << "' failed to open. Exiting.\n";
+ if (!fileHandle) {
+ LIBC_NAMESPACE::printf("file '%s' failed to open. Exiting.\n",
+ inputFileName);
return 1;
}
- while (getline(fileStream, line)) {
+
+ while (LIBC_NAMESPACE::fgets(line, 100, fileHandle)) {
if (line[0] == '#') {
continue;
}
*total = *total + 1;
uint32_t expectedFloatRaw;
uint64_t expectedDoubleRaw;
- expectedFloatRaw = fastHexToU32(line.c_str() + 5);
- expectedDoubleRaw = fastHexToU64(line.c_str() + 14);
- num = line.substr(31);
+ expectedFloatRaw = fastHexToU32(line + 5);
+ expectedDoubleRaw = fastHexToU64(line + 14);
+ num = line + 31;
- float floatResult = strtof(num.c_str(), nullptr);
+ float floatResult = LIBC_NAMESPACE::strtof(num, nullptr);
- double doubleResult = strtod(num.c_str(), nullptr);
+ double doubleResult = LIBC_NAMESPACE::strtod(num, nullptr);
uint32_t floatRaw = *(uint32_t *)(&floatResult);
----------------
lntue wrote:
change this to `cpp::bit_cast<uint32_t>(floatResult)`, and similarly for `doubleResult`.
https://github.com/llvm/llvm-project/pull/133978
More information about the libc-commits
mailing list