r323218 - clang-format: Support formatting Java 8 interface default methods.
Galina Kistanova via cfe-commits
cfe-commits at lists.llvm.org
Tue Jan 23 13:58:08 PST 2018
Hello Nico,
This commit broke one of our builders:
http://lab.llvm.org:8011/builders/ubuntu-gcc7.1-werror/builds/4701
. . .
FAILED: /usr/local/gcc-7.1/bin/g++-7.1 -DGTEST_HAS_RTTI=0 -D_DEBUG
-D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS
-D__STDC_LIMIT_MACROS -Itools/clang/lib/Format
-I/home/buildslave/am1i-slv2/ubuntu-gcc7.1-werror/llvm/tools/clang/lib/Format
-I/home/buildslave/am1i-slv2/ubuntu-gcc7.1-werror/llvm/tools/clang/include
-Itools/clang/include -Iinclude
-I/home/buildslave/am1i-slv2/ubuntu-gcc7.1-werror/llvm/include
-Wno-noexcept-type -fPIC -fvisibility-inlines-hidden -Werror
-Werror=date-time -std=c++11 -Wall -W -Wno-unused-parameter -Wwrite-strings
-Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long
-Wno-maybe-uninitialized -Wdelete-non-virtual-dtor -Wno-comment
-ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual
-fno-strict-aliasing -O3 -fPIC -UNDEBUG -fno-exceptions -fno-rtti -MD
-MT
tools/clang/lib/Format/CMakeFiles/clangFormat.dir/UnwrappedLineParser.cpp.o
-MF
tools/clang/lib/Format/CMakeFiles/clangFormat.dir/UnwrappedLineParser.cpp.o.d
-o
tools/clang/lib/Format/CMakeFiles/clangFormat.dir/UnwrappedLineParser.cpp.o
-c
/home/buildslave/am1i-slv2/ubuntu-gcc7.1-werror/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp
/home/buildslave/am1i-slv2/ubuntu-gcc7.1-werror/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp:
In member function ‘void
clang::format::UnwrappedLineParser::parseLevel(bool)’:
/home/buildslave/am1i-slv2/ubuntu-gcc7.1-werror/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp:345:7:
error: this statement may fall through [-Werror=implicit-fallthrough=]
}
^
/home/buildslave/am1i-slv2/ubuntu-gcc7.1-werror/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp:348:5:
note: here
case tok::kw_case:
^~~~
cc1plus: all warnings being treated as errors
ninja: build stopped: subcommand failed.
Please have a look?
Thanks
Galina
On Tue, Jan 23, 2018 at 8:30 AM, Nico Weber via cfe-commits <
cfe-commits at lists.llvm.org> wrote:
> Author: nico
> Date: Tue Jan 23 08:30:56 2018
> New Revision: 323218
>
> URL: http://llvm.org/viewvc/llvm-project?rev=323218&view=rev
> Log:
> clang-format: Support formatting Java 8 interface default methods.
>
> Modified:
> cfe/trunk/lib/Format/UnwrappedLineParser.cpp
> cfe/trunk/unittests/Format/FormatTestJava.cpp
>
> Modified: cfe/trunk/lib/Format/UnwrappedLineParser.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/
> UnwrappedLineParser.cpp?rev=323218&r1=323217&r2=323218&view=diff
> ============================================================
> ==================
> --- cfe/trunk/lib/Format/UnwrappedLineParser.cpp (original)
> +++ cfe/trunk/lib/Format/UnwrappedLineParser.cpp Tue Jan 23 08:30:56 2018
> @@ -333,7 +333,18 @@ void UnwrappedLineParser::parseLevel(boo
> nextToken();
> addUnwrappedLine();
> break;
> - case tok::kw_default:
> + case tok::kw_default: {
> + unsigned StoredPosition = Tokens->getPosition();
> + FormatToken *Next = Tokens->getNextToken();
> + FormatTok = Tokens->setPosition(StoredPosition);
> + if (Next && Next->isNot(tok::colon)) {
> + // default not followed by ':' is not a case label; treat it like
> + // an identifier.
> + parseStructuralElement();
> + break;
> + }
> + // Else, if it is 'default:', fall through to the case handling.
> + }
> case tok::kw_case:
> if (Style.Language == FormatStyle::LK_JavaScript &&
> Line->MustBeDeclaration) {
> @@ -1032,8 +1043,12 @@ void UnwrappedLineParser::parseStructura
> // 'default: string' field declaration.
> break;
> nextToken();
> - parseLabel();
> - return;
> + if (FormatTok->is(tok::colon)) {
> + parseLabel();
> + return;
> + }
> + // e.g. "default void f() {}" in a Java interface.
> + break;
> case tok::kw_case:
> if (Style.Language == FormatStyle::LK_JavaScript &&
> Line->MustBeDeclaration)
> // 'case: string' field declaration.
>
> Modified: cfe/trunk/unittests/Format/FormatTestJava.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/
> Format/FormatTestJava.cpp?rev=323218&r1=323217&r2=323218&view=diff
> ============================================================
> ==================
> --- cfe/trunk/unittests/Format/FormatTestJava.cpp (original)
> +++ cfe/trunk/unittests/Format/FormatTestJava.cpp Tue Jan 23 08:30:56 2018
> @@ -144,6 +144,7 @@ TEST_F(FormatTestJava, ClassDeclarations
> verifyFormat("public interface SomeInterface {\n"
> " void doStuff(int theStuff);\n"
> " void doMoreStuff(int moreStuff);\n"
> + " default void doStuffWithDefault() {}\n"
> "}");
> verifyFormat("@interface SomeInterface {\n"
> " void doStuff(int theStuff);\n"
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180123/80257011/attachment.html>
More information about the cfe-commits
mailing list