ValueObjectPrinter could enter an infinite loop while trying to display an aptly formed ValueObject: a reference, with a child of some pointer type, such that the pointees chain ended up pointing back to some part of itself - a pointer to itself being the simplest such case Fixed here by only setting a pointer depth when needed, and ensuring that we won't overflow and wrap the pointer depth when it's zero. llvm-svn: 200247
22 lines
230 B
C++
22 lines
230 B
C++
int _ID = 0;
|
|
|
|
class Foo {
|
|
public:
|
|
Foo *next;
|
|
int ID;
|
|
|
|
Foo () : next(0), ID(++_ID) {}
|
|
};
|
|
|
|
int evalFoo(Foo& foo)
|
|
{
|
|
return foo.ID; // Set break point at this line.
|
|
}
|
|
|
|
int main() {
|
|
Foo f;
|
|
f.next = &f;
|
|
return evalFoo(f);
|
|
}
|
|
|