// PR c++/35878 | |
// { dg-do compile } | |
// { dg-options "-O2 -std=gnu++17 -fdump-tree-optimized" } | |
// { dg-final { scan-tree-dump-not "v_\[0-9]+\\(D\\) \[=!]= 0" "optimized" } } | |
#include <new> | |
#include <utility> | |
struct s1{ | |
int a; | |
int b; | |
int c; | |
}; | |
void f1 (s1 * v, s1&& s) | |
{ | |
new (v) s1(std::move(s)); | |
} | |
void f2 (s1 * v, s1&& s) | |
{ | |
*v = std::move(s); | |
} |