Comment #8 on issue 982 by kimgr: ipp files
https://github.com/include-what-you-use/include-what-you-use/issues/982
Interesting... I don't think the Clang libraries do any threading behind the scenes (but I haven't followed Clang development closely for a while, so things could have changed).
I wonder if it's some kind of memory corruption issue; would be interesting to see the result with an ASAN-instrumented `include-what-you-use` binary. But I guess you're not building from source?
As for the original example you posted, I get very different behavior:
```
$ include-what-you-use --version
include-what-you-use 0.14 (git:aa7c663) based on clang version 10.0.0-4ubuntu1
$ include-what-you-use tests/982/a.cpp
In file included from tests/982/a.cpp:2:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
tests/982/a.hpp:4:10: error: #include nested too deeply
#include "a_ipp.hpp"
^
In file included from tests/982/a.cpp:2:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
In file included from tests/982/a_ipp.hpp:4:
In file included from tests/982/a.hpp:4:
tests/982/a_ipp.hpp:5:27: error: redefinition of 'Func1'
template<typename T> void Func1(T & t) { /*implementation */ }
^
tests/982/a_ipp.hpp:5:27: note: previous definition is here
template<typename T> void Func1(T & t) { /*implementation */ }
^
```
.. the preprocessor goes into a loop here until it gives up.
If I add include guards (`#pragma once`), it only complains that `a.hpp` doesn't need `a_ipp.hpp`, which can be worked around with a `// IWYU pragma: keep`.
So I wonder what's going on in your environment...