Fortran: Fix PR 47485.
[gcc.git] / gcc / testsuite / g++.dg / warn / Wdangling-reference2.C
bloba3d5ad6d8676d93efcc9c521c5046e2790c1388b
1 // PR c++/106393
2 // { dg-do compile { target c++11 } }
3 // { dg-options "-Wdangling-reference" }
5 namespace std {
6 struct any { void *p; ~any(); };
7 template <typename _ValueType> _ValueType any_cast(any &&);
8 template <typename _Tp> struct remove_reference { using type = _Tp; };
9 template <typename _Tp> _Tp forward(typename remove_reference<_Tp>::type);
10 template <typename _Tp> typename remove_reference<_Tp>::type move(_Tp);
11 } // namespace std
13 const int &r = std::any_cast<int&>(std::any()); // { dg-warning "dangling reference" }
15 template <class T> struct C {
16   T t_; // { dg-warning "dangling reference" }
17   C(T);
18   template <class U> C(U c) : t_(std::forward<T>(c.t_)) {}
20 struct A {};
21 struct B {
22   B(A);
24 int main() {
25   A a;
26   C<A> ca(a);
27   C<B &&>(std::move(ca));