check for correct usage of the byval attribute
[oota-llvm.git] / test / C++Frontend / 2006-09-12-OpaqueStructCrash.cpp
1 // RUN: %llvmgxx -O3 -S -o - %s
2
3 struct A {
4    virtual ~A();
5 };
6
7 template <typename Ty>
8 struct B : public A {
9    ~B () { delete [] val; }
10 private:
11      Ty* val;
12 };
13
14 template <typename Ty>
15 struct C : public A {
16    C ();
17    ~C ();
18 };
19
20 template <typename Ty>
21 struct D : public A {
22      D () {}
23    private:
24      B<C<Ty> > blocks;
25 };
26
27 template class D<double>;
28