Skip to content

iwyu #85

@maflcko

Description

@maflcko

dnf

dnf install gcc-c++ cmake make python3 libevent-devel boost-devel sqlite-devel zeromq-devel systemtap-sdt-devel capnproto qt6-qtbase-devel qt6-qttools-devel qt6-qtwayland qrencode-devel llvm-devel clang-devel libtool autoconf automake clang llvm lbzip2 patch xz curl htop git vim ccache -y && git clone https://github.com/bitcoin/bitcoin.git  --depth=1 ./b-c && cd b-c
git clone --depth=1 https://github.com/include-what-you-use/include-what-you-use -b clang_20 /include-what-you-use
cmake -B /build_iwyu/ -G 'Unix Makefiles' -S /include-what-you-use  -DCMAKE_PREFIX_PATH=/usr/lib/clang/20  # ?
make -C /build_iwyu/ install -j $(nproc)


cmake -B bld-cmake  -DWITH_ZMQ=ON -DBUILD_BENCH=ON -DWITH_ZMQ=ON      -DCMAKE_CXX_COMPILER='clang++;-I/usr/lib/clang/20/include'  -DCMAKE_EXPORT_COMPILE_COMMANDS=ON


python3 "/include-what-you-use/iwyu_tool.py" -p ./bld-cmake -j 9 -- -Xiwyu --cxx17ns -Xiwyu --mapping_file="$PWD/contrib/devtools/iwyu/bitcoin.core.imp"  2>&1 | tee /tmp/iwyu_ci.out


echo 'aW1wb3J0IHN1YnByb2Nlc3MKaW1wb3J0IGFyZ3BhcnNlCiAgICAgICAgCgpkZWYgbWFpbigpOgog
ICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRpb249IlByZS0gb3Ig
UG9zdC1wcm9jZXNzIGZpbGVzIGZvciBpd3l1LiIpCiAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCct
LWJ3ZCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGhlbHA9IlBvc3QtcHJvY2VzcyIpCiAgICBhcmdz
ID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQoKICAgIHNyY19maWxlcyA9IHN1YnByb2Nlc3MucnVuKFsn
Z2l0JywgJ2xzLWZpbGVzJywgJ3NyYy8qLmgnICwgJ3NyYy8qLmNwcCddLCBjYXB0dXJlX291dHB1
dD1UcnVlLCB0ZXh0PVRydWUsIGNoZWNrPVRydWUpICAgICAgICAgIC5zdGRvdXQuc3RyaXAoKS5z
cGxpdGxpbmVzKCkKICAgIGhlYWRlcnMgPSBzdWJwcm9jZXNzLnJ1bihbJ2dpdCcsICdscy1maWxl
cycsICdzcmMvKi5oJ10sIGNhcHR1cmVfb3V0cHV0PVRydWUsIHRleHQ9VHJ1ZSwgY2hlY2s9VHJ1
ZSkgICAgICAgICAgLnN0ZG91dC5zdHJpcCgpLnNwbGl0bGluZXMoKQogICAgaGVhZGVycyA9IFto
LnJlbW92ZXByZWZpeCgnc3JjLycpIGZvciBoIGluIGhlYWRlcnNdCiAgICBoZWFkZXJzLmV4dGVu
ZChbJ2NvbmZpZy9iaXRjb2luLWNvbmZpZy5oJywgJ3VuaXZhbHVlLmgnXSkgIyBnZW5lcmF0ZWQg
aGVhZGVycyBhbmQgaW5jbHVkZWQgc3VidHJlZXMKICAgIHNlZF9jbWQgPSBbJ3NlZCcsICctaScs
XQogICAgZm9yIGggaW4gaGVhZGVyczoKICAgICAgICBzZWRfY21kLmV4dGVuZChbJy1lJywKICAg
ICAgICAgICAgICAgICAgICAgICAgZidzOiJ7aH0iOjx7aH0+OmcnICAgICAgICAgIGlmIGFyZ3Mu
YndkIGVsc2UgIAogICAgICAgICAgICAgICAgICAgICAgICBmJ3M6PHtofT46IntofSI6ZycgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIF0pCiAgICBzZWRfY21kLmV4dGVuZChzcmNf
ZmlsZXMpCiAgICAKICAgIHByaW50KHNlZF9jbWQpCiAgICBzdWJwcm9jZXNzLnJ1bihzZWRfY21k
LCBjaGVjaz1UcnVlKQoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIG1haW4oKQoK' | base64 --decode > /tmp/helper.py
python3 /tmp/helper.py
( cd src && python3 "/include-what-you-use/fix_includes.py" --reorder < /tmp/iwyu_ci.out )
python3 /tmp/helper.py --bwd

diff

diff --git a/fix_includes.py b/fix_includes.py
index 2b95d0e..5b98cb9 100755
--- a/fix_includes.py
+++ b/fix_includes.py
@@ -1538,10 +1538,10 @@ def _GetNamespaceLevelReorderSpans(file_lines):
 # These are potential 'kind' arguments to _FirstReorderSpanWith.
 # We also sort our output in this order, to the extent possible.
 _MAIN_CU_INCLUDE_KIND = 1         # e.g. #include "foo.h" when editing foo.cc
-_C_SYSTEM_INCLUDE_KIND = 2        # e.g. #include <stdio.h>
-_CXX_SYSTEM_INCLUDE_KIND = 3      # e.g. #include <vector>
-_NONSYSTEM_INCLUDE_KIND = 4       # e.g. #include "bar.h"
-_PROJECT_INCLUDE_KIND = 5         # e.g. #include "myproject/quux.h"
+_C_SYSTEM_INCLUDE_KIND = 4        # e.g. #include <stdio.h>
+_CXX_SYSTEM_INCLUDE_KIND = 5      # e.g. #include <vector>
+_NONSYSTEM_INCLUDE_KIND = 2       # e.g. #include "bar.h"
+_PROJECT_INCLUDE_KIND = 3         # e.g. #include "myproject/quux.h"
 _FORWARD_DECLARE_KIND = 6         # e.g. class Baz;
 _EOF_KIND = 7                     # used at eof
 

bwd

<assert.h>:<cassert>
<ctype.h>:<cctype>
<errno.h>:<cerrno>
<float.h>:<cfloat>
<limits.h>:<climits>
<locale.h>:<clocale>
<math.h>:<cmath>
<setjmp.h>:<csetjmp>
<signal.h>:<csignal>
<stdarg.h>:<cstdarg>
<stddef.h>:<cstddef>
<stdio.h>:<cstdio>
<stdlib.h>:<cstdlib>
<string.h>:<cstring>
<time.h>:<ctime>
<wchar.h>:<cwchar>
<wctype.h>:<cwctype>
<uchar.h>:<cuchar>
<inttypes.h>:<cinttypes>
<stdint.h>:<cstdint>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions