Hi,
I finally used C-Reduce! I had 12 crashes IIRC, but C-Reduce continued until it found a small testcase.
I am attaching a tarball with all generated bug reports.
Minimized testcase generated by C-Reduce:
- - -
class A {
public:
A(int, int, int);
};
class B {
virtual int tangentPlane();
public:
B(A, int, int *);
};
class C : B {
public:
C(A p1, int p2, int *p3) : B(p1, p2, p3) {}
};
using BoundDisk = C;
#pragma GCC visibility push(hidden)
class B;
float a;
int b;
void fn1() {
A c(0., 0., a);
new BoundDisk(c, b, 0);
}
- - -
Further manual minimization:
- - -
class B {
virtual int tangentPlane();
public:
B();
};
class C : B {
public:
C() : B() {}
};
#pragma GCC visibility push(hidden)
class B;
void fn1() {
new C();
}
- - -
Two things which are interesting:
- Why C-Reduce did not attempt to remove arguments?
- Why it did not remove one of the classes?
Or maybe it tried, but it crashed and skipped it.
Attachment:
creduce_bug.tar.bz2
Description: BZip2 compressed data
Attachment:
signature.asc
Description: Message signed with OpenPGP using GPGMail