mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-19 02:56:49 +00:00
[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
This commit is contained in:
parent
1079fc4f54
commit
6d0174e706
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user