[cfe-dev] Repeated clang-format'ting keeps changing code / use of clang-format in CI
Sebastian Pipping via cfe-dev
cfe-dev at lists.llvm.org
Fri Jul 26 14:03:23 PDT 2019
Hi Nico,
that's great to hear. I have attached a script to reproduce the issue
from public code of libexpat 2.2.7 as well as the second iteration diff
I get from clang-format version 10.0.0
(/var/tmp/portage/sys-devel/clang-10.0.0.9999/work/x/y/clang-10.0.0.9999
c0048be7ff340ebba3092e95d82147bc9928b909) of Gentoo.
Best
Sebastian
On 26.07.19 22:07, Nico Weber wrote:
> clang-cl is supposed to reach a fixpoint in one iteration. If it
> doesn't, that's a bug. If you can, please post a reduced repro case :)
>
> On Thu, Jul 25, 2019 at 5:38 PM Sebastian Pipping via cfe-dev
> <cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>> wrote:
>
> Hi!
>
>
> I'm trying to integrate clang-format version 9 with CI in a way that the
> CI run only passes if applying clang-format yields the exact same
> code, i.e. "git diff --exit-code" returns 0. The idea is that every
> pull request would only pass if clang-format
>
> When trying to put that approach to action with libexpat [1]
> I noticed that multiple runs to clang-format do not seem to produce the
> same code, at least not with the two version of Clang 9 that I tested
> [2], and at least not with libexpat code.
>
> I wonder if that's a known problem, if it's fixed in later versions
> of clang-format, if you are aware of workarounds, or if I just need
> to say goodbye to combining clang-format and CI for stable style
> checking.
>
> Thanks in advance!
>
> Best
>
>
>
> Sebastian
>
>
> [1] https://github.com/libexpat/libexpat/pull/293
> [2] 9.0.0.9999 commit 28c954cf961a846789a972a8ed179b7108244ae7
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>
> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
-------------- next part --------------
#! /usr/bin/env bash
set -e
set -x
wget https://github.com/libexpat/libexpat/releases/download/R_2_2_7/expat-2.2.7.tar.xz
tar xf expat-2.2.7.tar.xz
cd expat-2.2.7/
git init
git add lib/xmltok_impl.c tests/runtests.c && git commit -m 'Original code'
clang-format -verbose -i lib/xmltok_impl.c tests/runtests.c && git commit -a -m 'First round'
clang-format -verbose -i lib/xmltok_impl.c tests/runtests.c && git diff --exit-code
-------------- next part --------------
A non-text attachment was scrubbed...
Name: expat-2-2-7-clang-format-second-round.diff
Type: text/x-patch
Size: 25599 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20190726/d4a382ed/attachment.bin>
More information about the cfe-dev
mailing list