Issue |
122852
|
Summary |
[clang-include-cleaner] suggest to insert header where base class is defined
|
Labels |
false-positive,
clang-include-cleaner
|
Assignees |
|
Reporter |
EugeneZelenko
|
`clang-include-cleaner` suggest to include header where base class is defined as well as forward declaration when base/derived class headers should be enough.
`clang-tidy misc-include-cleaner` output:
```
clang-tidy -checks="-*,misc-include-cleaner" Forward.cpp
5 warnings generated.
Forward.cpp:3:39: warning: no header providing "detail::Forward" is directly included [misc-include-cleaner]
2 |
3 | void Test::do_something(const detail::Forward& forward)
| ^
Forward.cpp:5:5: warning: no header providing "Base" is directly included [misc-include-cleaner]
5 | Base::do_something(forward);
| ^
```
I tried `clang-include-cleaner` from `main` (7d8b4eb0ead277f41ff69525ed807f9f6e227f37).
Base class header file (`Base.h`):
```
#pragma once
namespace detail
{
class Forward;
}
class Base
{
public:
virtual void do_something(const detail::Forward& forward);
};
```
Header file (`Forward.h`):
```
#pragma once
#include "Base.h"
class Test : public Base
{
public:
void do_something(const detail::Forward& forward) override;
};
```
Source file (`Forward.cpp`):
```
#include "Forward.h"
void Test::do_something(const detail::Forward& forward)
{
Base::do_something(forward);
}
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs