Files
clang-p2996/lldb/test/API/functionalities/limit-debug-info/onetwo.h
Pavel Labath fdc6aea3fd [lldb] Check Decl kind when completing -flimit-debug-info types
The search for the complete class definition can also produce entries
which are not of the expected type. This can happen for instance when
there is a function with the same name as the class we're looking up
(which means that the class needs to be disambiguated with the
struct/class tag in most contexts).

Previously we were just picking the first Decl that the lookup returned,
which later caused crashes or assertion failures if it was not of the
correct type. This patch changes that to search for an entry of the
correct type.

Differential Revision: https://reviews.llvm.org/D85904
2020-08-14 12:31:37 +02:00

67 lines
969 B
C++

struct One {
int one = 142;
constexpr One() = default;
virtual ~One();
};
struct Two : One {
int two = 242;
constexpr Two() = default;
~Two() override;
};
namespace member {
struct One {
int member = 147;
constexpr One() = default;
virtual ~One();
};
struct Two {
One one;
int member = 247;
constexpr Two() = default;
virtual ~Two();
};
} // namespace member
namespace array {
struct One {
int member = 174;
constexpr One() = default;
virtual ~One();
};
struct Two {
One one[3];
int member = 274;
constexpr Two() = default;
virtual ~Two();
};
} // namespace array
namespace result {
struct One {
int member;
One(int member);
virtual ~One();
};
struct Two {
int member;
Two(int member);
One one() const;
virtual ~Two();
};
} // namespace result
namespace func_shadow {
void One(int);
struct One {
int one = 142;
constexpr One() = default;
virtual ~One();
};
void One(float);
} // namespace func_shadow