summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/test/cpp11-migrate/PassByValue/basic.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/test/cpp11-migrate/PassByValue/basic.cpp')
-rw-r--r--clang-tools-extra/test/cpp11-migrate/PassByValue/basic.cpp168
1 files changed, 0 insertions, 168 deletions
diff --git a/clang-tools-extra/test/cpp11-migrate/PassByValue/basic.cpp b/clang-tools-extra/test/cpp11-migrate/PassByValue/basic.cpp
deleted file mode 100644
index ce23f047edb..00000000000
--- a/clang-tools-extra/test/cpp11-migrate/PassByValue/basic.cpp
+++ /dev/null
@@ -1,168 +0,0 @@
-// Since -fdelayed-template-parsing is enabled by default on Windows (as a
-// Microsoft extension), -fno-delayed-template-parsing is used for the tests in
-// order to have the same behavior on all systems.
-//
-// RUN: grep -Ev "// *[A-Z-]+:" %s > %t.cpp
-// RUN: cpp11-migrate -pass-by-value %t.cpp -- -std=c++11 -fno-delayed-template-parsing -I %S
-// RUN: FileCheck -input-file=%t.cpp %s
-//
-// RUN: grep -Ev "// *[A-Z-]+:" %s > %t.cpp
-// RUN: cpp11-migrate -pass-by-value %t.cpp -- -std=c++11 -fno-delayed-template-parsing -I %S
-// RUN: FileCheck -check-prefix=SAFE_RISK -input-file=%t.cpp %s
-
-#include "basic.h"
-// CHECK: #include <utility>
-
-// Test that when the class declaration can't be modified we won't modify the
-// definition either.
-UnmodifiableClass::UnmodifiableClass(const Movable &M) : M(M) {}
-// CHECK: UnmodifiableClass::UnmodifiableClass(const Movable &M) : M(M) {}
-
-struct A {
- A(const Movable &M) : M(M) {}
- // CHECK: A(Movable M) : M(std::move(M)) {}
- // SAFE_RISK: A(const Movable &M) : M(M) {}
- Movable M;
-};
-
-// Test that we aren't modifying other things than a parameter
-Movable GlobalObj;
-struct B {
- B(const Movable &M) : M(GlobalObj) {}
- // CHECK: B(const Movable &M) : M(GlobalObj) {}
- Movable M;
-};
-
-// Test that a parameter with more than one reference to it won't be changed.
-struct C {
- // Tests extra-reference in body
- C(const Movable &M) : M(M) { this->i = M.a; }
- // CHECK: C(const Movable &M) : M(M) { this->i = M.a; }
-
- // Tests extra-reference in init-list
- C(const Movable &M, int) : M(M), i(M.a) {}
- // CHECK: C(const Movable &M, int) : M(M), i(M.a) {}
- Movable M;
- int i;
-};
-
-// Test that both declaration and definition are updated
-struct D {
- D(const Movable &M);
- // CHECK: D(Movable M);
- Movable M;
-};
-D::D(const Movable &M) : M(M) {}
-// CHECK: D::D(Movable M) : M(std::move(M)) {}
-
-// Test with default parameter
-struct E {
- E(const Movable &M = Movable()) : M(M) {}
- // CHECK: E(Movable M = Movable()) : M(std::move(M)) {}
- Movable M;
-};
-
-// Test with object that can't be moved
-struct F {
- F(const NotMovable &NM) : NM(NM) {}
- // CHECK: F(const NotMovable &NM) : NM(NM) {}
- NotMovable NM;
-};
-
-// Test unnamed parameter in declaration
-struct G {
- G(const Movable &);
- // CHECK: G(Movable );
- Movable M;
-};
-G::G(const Movable &M) : M(M) {}
-// CHECK: G::G(Movable M) : M(std::move(M)) {}
-
-// Test parameter with and without qualifier
-namespace ns_H {
-typedef ::Movable HMovable;
-}
-struct H {
- H(const ns_H::HMovable &M);
- // CHECK: H(ns_H::HMovable M);
- ns_H::HMovable M;
-};
-using namespace ns_H;
-H::H(const HMovable &M) : M(M) {}
-// CHECK: H(HMovable M) : M(std::move(M)) {}
-
-// Try messing up with macros
-#define MOVABLE_PARAM(Name) const Movable & Name
-// CHECK: #define MOVABLE_PARAM(Name) const Movable & Name
-struct I {
- I(MOVABLE_PARAM(M)) : M(M) {}
- // CHECK: I(MOVABLE_PARAM(M)) : M(M) {}
- Movable M;
-};
-#undef MOVABLE_PARAM
-
-// Test that templates aren't modified
-template <typename T> struct J {
- J(const T &M) : M(M) {}
- // CHECK: J(const T &M) : M(M) {}
- T M;
-};
-J<Movable> j1(Movable());
-J<NotMovable> j2(NotMovable());
-
-struct K_Movable {
- K_Movable() = default;
- K_Movable(const K_Movable &) = default;
- K_Movable(K_Movable &&o) { dummy = o.dummy; }
- int dummy;
-};
-
-// Test with movable type with an user defined move constructor.
-struct K {
- K(const K_Movable &M) : M(M) {}
- // CHECK: K(K_Movable M) : M(std::move(M)) {}
- K_Movable M;
-};
-
-template <typename T> struct L {
- L(const Movable &M) : M(M) {}
- // CHECK: L(Movable M) : M(std::move(M)) {}
- Movable M;
-};
-L<int> l(Movable());
-
-// Test with a non-instantiated template class
-template <typename T> struct N {
- N(const Movable &M) : M(M) {}
- // CHECK: N(Movable M) : M(std::move(M)) {}
-
- Movable M;
- T A;
-};
-
-// Test with value parameter
-struct O {
- O(Movable M) : M(M) {}
- // CHECK: O(Movable M) : M(std::move(M)) {}
- Movable M;
-};
-
-// Test with a const-value parameter
-struct P {
- P(const Movable M) : M(M) {}
- // CHECK: P(Movable M) : M(std::move(M)) {}
- Movable M;
-};
-
-// Test with multiples parameters where some need to be changed and some don't
-// need to.
-struct Q {
- Q(const Movable &A, const Movable &B, const Movable &C, double D)
- : A(A), B(B), C(C), D(D) {}
- // CHECK: Q(const Movable &A, Movable B, Movable C, double D)
- // CHECK-NEXT: : A(A), B(std::move(B)), C(std::move(C)), D(D) {}
- const Movable &A;
- Movable B;
- Movable C;
- double D;
-};
OpenPOWER on IntegriCloud