CompareToBlankPadding was doing signed compare on architecture where
char is signed. This caused 'abc'//char(128) > 'abc' to evaluate
to false at runtime instead of true.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
Other than my comment about repeated code, all build, tests, and looks good.
| flang/runtime/character.cpp | ||
|---|---|---|
| 25–30 | You could avoid some repeated code here: UNSIGNED_CHAR ux = *reinterpret_cast<const UNSIGNED_CHAR *>(x);
if (ux < blank) {
return -1;
}
if (ux > blank) { | |
You could avoid some repeated code here:
UNSIGNED_CHAR ux = *reinterpret_cast<const UNSIGNED_CHAR *>(x); if (ux < blank) { return -1; } if (ux > blank) {