1 // PR c++/35878 2 // { dg-do compile } 3 // { dg-options "-O2 -std=gnu++17 -fdump-tree-optimized" } 4 // { dg-final { scan-tree-dump-not "v_\[0-9]+\\(D\\) \[=!]= 0" "optimized" } } 5 6 #include <new> 7 #include <utility> 8 9 struct s1{ 10 int a; 11 int b; 12 int c; 13 }; 14 f1(s1 * v,s1 && s)15void f1 (s1 * v, s1&& s) 16 { 17 new (v) s1(std::move(s)); 18 } 19 f2(s1 * v,s1 && s)20void f2 (s1 * v, s1&& s) 21 { 22 *v = std::move(s); 23 } 24