re PR c++/53581 (Segmentation fault when enabling -std=c++0x on template code)
2012-10-14 Paolo Carlini <paolo.carlini@oracle.com> PR c++/53581 * g++.dg/template/crash113.C: New. From-SVN: r192438
This commit is contained in:
parent
6d96bad253
commit
b5afa20284
2 changed files with 55 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2012-10-14 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/53581
|
||||
* g++.dg/template/crash113.C: New.
|
||||
|
||||
2012-10-14 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* gcc.dg/unroll_5.c: New testcase.
|
||||
|
|
50
gcc/testsuite/g++.dg/template/crash113.C
Normal file
50
gcc/testsuite/g++.dg/template/crash113.C
Normal file
|
@ -0,0 +1,50 @@
|
|||
// PR c++/53581
|
||||
|
||||
template<class A, int M, int N>
|
||||
class Child;
|
||||
|
||||
template<class A, int M, int N>
|
||||
class Base
|
||||
{
|
||||
public:
|
||||
Child<A, M, N> operator-(const Base<A, M, N> &m) const
|
||||
{
|
||||
Child<A, M, N> diff;
|
||||
return diff;
|
||||
}
|
||||
|
||||
A test() const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
private:
|
||||
A values[M * N];
|
||||
};
|
||||
|
||||
template<class A, int N>
|
||||
class Ops
|
||||
{
|
||||
public:
|
||||
virtual ~Ops() {}
|
||||
|
||||
bool bar() const
|
||||
{
|
||||
Child<A, N, N> mat;
|
||||
return (*static_cast<const Child<A, N, N>*>(this) - mat).test();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
template<class A, int N>
|
||||
class Child<A, N, N> : public Base<A, N, N>, public Ops<A, N> {};
|
||||
|
||||
class ImageWarp
|
||||
{
|
||||
bool bar() const
|
||||
{
|
||||
return foo.bar();
|
||||
}
|
||||
|
||||
Child<float, 3, 3> foo;
|
||||
};
|
Loading…
Add table
Reference in a new issue