1/* This testcase is part of GDB, the GNU debugger. 2 3 Copyright 2012-2023 Free Software Foundation, Inc. 4 5 This program is free software; you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation; either version 3 of the License, or 8 (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 17 18/* Test rvalue references in python. Based on py-value-cc.cc. */ 19 20#include <utility> 21 22class A 23{ 24public: 25 int operator+ (const int a1); 26 27 public: 28 int a; 29}; 30 31int 32A::operator+ (const int a1) 33{ 34 return a + a1; 35} 36 37class B : public A 38{ 39 public: 40 char a; 41}; 42 43typedef int *int_ptr; 44 45int 46main () 47{ 48 int val = 10; 49 int &&int_rref = std::move (val); 50 int_ptr ptr = &val; 51 int_ptr &&int_ptr_rref = std::move (ptr); 52 53 B b; 54 b.a = 'b'; 55 (&b)->A::a = 100; 56 B &&b_rref = std::move (b); 57 58 return 0; /* Break here. */ 59} 60