Skip to content

Commit 5000f27

Browse files
committed
Just omit functions by hand that's supposed to not be declared
1 parent 3584a15 commit 5000f27

1 file changed

Lines changed: 38 additions & 17 deletions

File tree

  • cpp/misra/test/rules/RULE-15-0-1

cpp/misra/test/rules/RULE-15-0-1/test.cpp

Lines changed: 38 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ void f();
4040
// special member function.
4141
#define DEFAULTED = default;
4242
#define DELETED = delete;
43-
#define NOT_DECLARED ; // null statement
4443
#define CUSTOMIZED { helpers::f(); }
4544
// clang-format on
4645

@@ -282,47 +281,69 @@ class CopyAssignableCustomizedDtorCompliant1 { // COMPLIANT: copy-assignable cl
282281

283282
class CopyAssignableCustomizedDtorCompliant2 { // COMPLIANT: copy-assignable class with both move operations not declared
284283
public:
285-
DEFINE_ALL_SPECIAL_MEMBERS(CopyAssignableCustomizedDtorCompliant2, DEFAULTED,
286-
NOT_DECLARED, CUSTOMIZED, NOT_DECLARED, CUSTOMIZED)
284+
COPY_CTOR(CopyAssignableCustomizedDtorCompliant2) DEFAULTED
285+
// Move constructor is not declared
286+
COPY_ASSIGN(CopyAssignableCustomizedDtorCompliant2) CUSTOMIZED
287+
// Move assignment operator is not declared
288+
DTOR(CopyAssignableCustomizedDtorCompliant2) CUSTOMIZED
287289
};
288290

289291
class CopyAssignableCustomizedDtorNonCompliant1 { // NON_COMPLIANT: copy-assignable class with only one of move operations not declared
290292
public:
291-
DEFINE_ALL_SPECIAL_MEMBERS(CopyAssignableCustomizedDtorNonCompliant1, CUSTOMIZED,
292-
CUSTOMIZED, CUSTOMIZED, NOT_DECLARED, CUSTOMIZED)
293+
COPY_CTOR(CopyAssignableCustomizedDtorNonCompliant1) CUSTOMIZED
294+
MOVE_CTOR(CopyAssignableCustomizedDtorNonCompliant1) CUSTOMIZED
295+
COPY_ASSIGN(CopyAssignableCustomizedDtorNonCompliant1) CUSTOMIZED
296+
// Move assignment operator is not declared
297+
DTOR(CopyAssignableCustomizedDtorNonCompliant1) CUSTOMIZED
293298
};
294299

295300
class CopyAssignableCustomizedDtorNonCompliant2 { // NON_COMPLIANT: copy-assignable class with only one of move operations not declared
296301
public:
297-
DEFINE_ALL_SPECIAL_MEMBERS(CopyAssignableCustomizedDtorNonCompliant2, CUSTOMIZED,
298-
NOT_DECLARED, CUSTOMIZED, CUSTOMIZED, CUSTOMIZED)
302+
COPY_CTOR(CopyAssignableCustomizedDtorNonCompliant2) CUSTOMIZED
303+
// Move constructor is not declared
304+
COPY_ASSIGN(CopyAssignableCustomizedDtorNonCompliant2) CUSTOMIZED
305+
MOVE_ASSIGN(CopyAssignableCustomizedDtorNonCompliant2) CUSTOMIZED
306+
DTOR(CopyAssignableCustomizedDtorNonCompliant2) CUSTOMIZED
299307
};
300308

301309
class CopyAssignableCustomizedDtorNonCompliant3 { // NON_COMPLIANT: copy-assignable class with only one of move operations not declared
302310
public:
303-
DEFINE_ALL_SPECIAL_MEMBERS(CopyAssignableCustomizedDtorNonCompliant3, CUSTOMIZED,
304-
CUSTOMIZED, CUSTOMIZED, NOT_DECLARED, CUSTOMIZED)
311+
312+
COPY_CTOR(CopyAssignableCustomizedDtorNonCompliant3) CUSTOMIZED
313+
MOVE_CTOR(CopyAssignableCustomizedDtorNonCompliant3) CUSTOMIZED
314+
// Copy assignment operator is not declared
315+
MOVE_ASSIGN(CopyAssignableCustomizedDtorNonCompliant3) CUSTOMIZED
316+
DTOR(CopyAssignableCustomizedDtorNonCompliant3) CUSTOMIZED
317+
305318
};
306319

307320
class CopyAssignableCustomizedDtorNonCompliant4 { // NON_COMPLIANT: copy-assignable class with only one of move operations not declared
308321
public:
309-
DEFINE_ALL_SPECIAL_MEMBERS(CopyAssignableCustomizedDtorNonCompliant4, CUSTOMIZED,
310-
NOT_DECLARED, CUSTOMIZED, CUSTOMIZED, CUSTOMIZED)
322+
COPY_CTOR(CopyAssignableCustomizedDtorNonCompliant4) CUSTOMIZED
323+
// Move constructor is not declared
324+
COPY_ASSIGN(CopyAssignableCustomizedDtorNonCompliant4) CUSTOMIZED
325+
MOVE_ASSIGN(CopyAssignableCustomizedDtorNonCompliant4) CUSTOMIZED
326+
DTOR(CopyAssignableCustomizedDtorNonCompliant4) CUSTOMIZED
311327
};
312328

313329
class CopyAssignableCustomizedDtorNonCompliant5 { // NON_COMPLIANT: copy-assignable class with only one of move operations not declared
314330
public:
315-
DEFINE_ALL_SPECIAL_MEMBERS(CopyAssignableCustomizedDtorNonCompliant5, CUSTOMIZED,
316-
DEFAULTED, CUSTOMIZED, NOT_DECLARED, CUSTOMIZED)
331+
COPY_CTOR(CopyAssignableCustomizedDtorNonCompliant5) CUSTOMIZED
332+
MOVE_CTOR(CopyAssignableCustomizedDtorNonCompliant5) DEFAULTED
333+
COPY_ASSIGN(CopyAssignableCustomizedDtorNonCompliant5) CUSTOMIZED
334+
// Move assignment operator is not declared
335+
DTOR(CopyAssignableCustomizedDtorNonCompliant5) CUSTOMIZED
317336
};
318337

319338
class CopyAssignableCustomizedDtorNonCompliant6 { // NON_COMPLIANT: copy-assignable class with only one of move operations not declared
320339
public:
321-
DEFINE_ALL_SPECIAL_MEMBERS(CopyAssignableCustomizedDtorNonCompliant6, CUSTOMIZED,
322-
NOT_DECLARED, CUSTOMIZED, DEFAULTED, CUSTOMIZED)
340+
COPY_CTOR(CopyAssignableCustomizedDtorNonCompliant6) CUSTOMIZED
341+
// Move constructor is not declared
342+
COPY_ASSIGN(CopyAssignableCustomizedDtorNonCompliant6) CUSTOMIZED
343+
MOVE_ASSIGN(CopyAssignableCustomizedDtorNonCompliant6) DEFAULTED
344+
DTOR(CopyAssignableCustomizedDtorNonCompliant6) CUSTOMIZED
323345
};
324346

325-
326347
// A public unmovable base class shall have a public virtual destructor
327348
class UnmovableBaseNonvirtualDtor { // NON_COMPLIANT
328349
public:
@@ -440,4 +461,4 @@ void f(OdrUsedMoveEnabled o) {
440461
o3 = std::move(o);
441462
}
442463

443-
} // namespace audit_results
464+
} // namespace audit_results

0 commit comments

Comments
 (0)