diff options
author | Paul Hoad <mydeveloperday@gmail.com> | 2019-09-18 18:57:09 +0000 |
---|---|---|
committer | Paul Hoad <mydeveloperday@gmail.com> | 2019-09-18 18:57:09 +0000 |
commit | 79983be5a027c0ff8a7ef7a8f67481ce61efc523 (patch) | |
tree | 3e5eeaedc9cdc0363ed935223dcf74da669aedad /clang/lib/Format/Encoding.h | |
parent | ba4cad9039660d322937f7f44bcb30b4849c3d58 (diff) | |
download | bcm5719-llvm-79983be5a027c0ff8a7ef7a8f67481ce61efc523.tar.gz bcm5719-llvm-79983be5a027c0ff8a7ef7a8f67481ce61efc523.zip |
[clang-format][PR41964] Fix crash with SIGFPE when TabWidth is set to 0 and line starts with tab
Summary:
clang-format 8.0 crashes with SIGFPE (floating point exception) when formatting following file:
app.cpp:
void a() {
//line starts with '\t'
}
$ clang-format -style='{TabWidth: 0}' app.cpp
Reviewers: owenpan, klimek, russellmcc, timwoj
Reviewed By: klimek
Subscribers: cfe-commits
Tags: #clang-tools-extra, #clang
Differential Revision: https://reviews.llvm.org/D67670
llvm-svn: 372246
Diffstat (limited to 'clang/lib/Format/Encoding.h')
-rw-r--r-- | clang/lib/Format/Encoding.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Format/Encoding.h b/clang/lib/Format/Encoding.h index fe3d5f01985..a0d664121b2 100644 --- a/clang/lib/Format/Encoding.h +++ b/clang/lib/Format/Encoding.h @@ -67,7 +67,8 @@ inline unsigned columnWidthWithTabs(StringRef Text, unsigned StartColumn, if (TabPos == StringRef::npos) return TotalWidth + columnWidth(Tail, Encoding); TotalWidth += columnWidth(Tail.substr(0, TabPos), Encoding); - TotalWidth += TabWidth - (TotalWidth + StartColumn) % TabWidth; + if (TabWidth) + TotalWidth += TabWidth - (TotalWidth + StartColumn) % TabWidth; Tail = Tail.substr(TabPos + 1); } } |