[libc-commits] [libc] 6d0174e - [libc] allow libc-hdrgen to work on windows files (#87292)
via libc-commits
libc-commits at lists.llvm.org
Mon Apr 1 17:04:33 PDT 2024
Author: Stephen Neuendorffer
Date: 2024-04-01T17:04:29-07:00
New Revision: 6d0174e70641b1ea172ffed07c43604ef15e28ae
URL: https://github.com/llvm/llvm-project/commit/6d0174e70641b1ea172ffed07c43604ef15e28ae
DIFF: https://github.com/llvm/llvm-project/commit/6d0174e70641b1ea172ffed07c43604ef15e28ae.diff
LOG: [libc] allow libc-hdrgen to work on windows files (#87292)
The code does some (overly simple?) checks on file syntax. These checks
assume unix line endings and fail on windows. This commit updates the
code to strip extra whitespace, making the checks more robust,
particularly in the presence of windows line endings.
Fixes #86023
Added:
Modified:
libc/utils/HdrGen/Generator.cpp
Removed:
################################################################################
diff --git a/libc/utils/HdrGen/Generator.cpp b/libc/utils/HdrGen/Generator.cpp
index 3bcf005adda74f..d926d5d9ac3c8d 100644
--- a/libc/utils/HdrGen/Generator.cpp
+++ b/libc/utils/HdrGen/Generator.cpp
@@ -84,11 +84,19 @@ void Generator::generate(llvm::raw_ostream &OS, llvm::RecordKeeper &Records) {
Line = Line.drop_front(CommandPrefixSize);
P = Line.split("(");
+ // It's possible that we have windows line endings, so strip off the extra
+ // CR.
+ P.second = P.second.trim();
if (P.second.empty() || P.second[P.second.size() - 1] != ')') {
SrcMgr.PrintMessage(llvm::SMLoc::getFromPointer(P.second.data()),
llvm::SourceMgr::DK_Error,
"Command argument list should begin with '(' "
"and end with ')'.");
+ SrcMgr.PrintMessage(llvm::SMLoc::getFromPointer(P.second.data()),
+ llvm::SourceMgr::DK_Error, P.second.data());
+ SrcMgr.PrintMessage(llvm::SMLoc::getFromPointer(P.second.data()),
+ llvm::SourceMgr::DK_Error,
+ std::to_string(P.second.size()));
std::exit(1);
}
llvm::StringRef CommandName = P.first;
More information about the libc-commits
mailing list