MyDeveloperDay created this revision.
MyDeveloperDay added reviewers: owenpan, klimek, russellmcc, timwoj.
MyDeveloperDay added a project: clang-tools-extra.
Herald added a project: clang.

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


Repository:
  rC Clang

https://reviews.llvm.org/D67670

Files:
  clang/lib/Format/FormatTokenLexer.cpp


Index: clang/lib/Format/FormatTokenLexer.cpp
===================================================================
--- clang/lib/Format/FormatTokenLexer.cpp
+++ clang/lib/Format/FormatTokenLexer.cpp
@@ -657,7 +657,7 @@
         ++Column;
         break;
       case '\t':
-        Column += Style.TabWidth - Column % Style.TabWidth;
+        Column += Style.TabWidth - (Column ? Column % Style.TabWidth : 0);
         break;
       case '\\':
         if (i + 1 == e || (Text[i + 1] != '\r' && Text[i + 1] != '\n'))


Index: clang/lib/Format/FormatTokenLexer.cpp
===================================================================
--- clang/lib/Format/FormatTokenLexer.cpp
+++ clang/lib/Format/FormatTokenLexer.cpp
@@ -657,7 +657,7 @@
         ++Column;
         break;
       case '\t':
-        Column += Style.TabWidth - Column % Style.TabWidth;
+        Column += Style.TabWidth - (Column ? Column % Style.TabWidth : 0);
         break;
       case '\\':
         if (i + 1 == e || (Text[i + 1] != '\r' && Text[i + 1] != '\n'))
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to