summaryrefslogtreecommitdiffstats
path: root/llvm/lib/TableGen/TableGenBackend.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2015-05-26 08:07:56 +0000
committerCraig Topper <craig.topper@gmail.com>2015-05-26 08:07:56 +0000
commitf58341c6eea59a500b59c7ecec270c1cd8ef0e5c (patch)
treebea17c58dd1a6b442b6bf649320e260e6c086b7d /llvm/lib/TableGen/TableGenBackend.cpp
parent33684f9e64828ee5408ab72ba54beb3b7b2ec754 (diff)
downloadbcm5719-llvm-f58341c6eea59a500b59c7ecec270c1cd8ef0e5c.tar.gz
bcm5719-llvm-f58341c6eea59a500b59c7ecec270c1cd8ef0e5c.zip
[TableGen] Fix line wrapping logic for the autogenerated header to use math that makes more sense (at least to me).
The old code had a bug if the description was between 75 and 85 characters or so as it substracted PSLen from Desc.size() instead of MAX_LINE_LEN in the compare. It also calculated odd values for PosE on the last split and just let StringRef::slice take care of it being larger than the description string. llvm-svn: 238187
Diffstat (limited to 'llvm/lib/TableGen/TableGenBackend.cpp')
-rw-r--r--llvm/lib/TableGen/TableGenBackend.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/llvm/lib/TableGen/TableGenBackend.cpp b/llvm/lib/TableGen/TableGenBackend.cpp
index 43f8cb089ec..77ed8414b15 100644
--- a/llvm/lib/TableGen/TableGenBackend.cpp
+++ b/llvm/lib/TableGen/TableGenBackend.cpp
@@ -36,14 +36,13 @@ void llvm::emitSourceFileHeader(StringRef Desc, raw_ostream &OS) {
StringRef Prefix("|* ");
StringRef Suffix(" *|");
printLine(OS, Prefix, ' ', Suffix);
+ size_t PSLen = Prefix.size() + Suffix.size();
+ assert(PSLen < MAX_LINE_LEN);
size_t Pos = 0U;
- do{
- size_t PSLen = Suffix.size() + Prefix.size();
- size_t PosE = Pos + ((MAX_LINE_LEN > (Desc.size() - PSLen)) ?
- Desc.size() :
- MAX_LINE_LEN - PSLen);
- printLine(OS, Prefix + Desc.slice(Pos, PosE), ' ', Suffix);
- Pos = PosE;
+ do {
+ size_t Length = std::min(Desc.size() - Pos, MAX_LINE_LEN - PSLen);
+ printLine(OS, Prefix + Desc.substr(Pos, Length), ' ', Suffix);
+ Pos += Length;
} while (Pos < Desc.size());
printLine(OS, Prefix, ' ', Suffix);
printLine(OS, Prefix + "Automatically generated file, do not edit!", ' ',
OpenPOWER on IntegriCloud