aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDeniz Evrenci <denizevrenci@gmail.com>2019-10-12 02:44:20 +0900
committerVictor Zverovich <victor.zverovich@gmail.com>2019-10-11 10:44:20 -0700
commit96f91428c6ad2d19f1ce87ae160b78f52ed989fb (patch)
tree41f2ed4dff04d1bf0ec2ad0c84d525d55c1fcadd /test
parentb732f28c007b0bd940359e9f3517f2caab7bd1a5 (diff)
downloadfmtlib-96f91428c6ad2d19f1ce87ae160b78f52ed989fb.tar.gz
Add defaulted copy and move operations to format_error and system_error (#1347)
* Avoid weak vtables by providing a private virtual member function * Add warning Wweak-vtables to clang when FMT_PEDANTIC is on * Add defaulted copy and move operations to format_error and system_error Compiler generated copy operations are deprecated and move operations are not generated altogether. * Add warning Wdeprecated to clang when FMT_PEDANTIC is on
Diffstat (limited to 'test')
-rw-r--r--test/core-test.cc5
-rw-r--r--test/test-assert.h5
2 files changed, 10 insertions, 0 deletions
diff --git a/test/core-test.cc b/test/core-test.cc
index 76612b99..931f44b7 100644
--- a/test/core-test.cc
+++ b/test/core-test.cc
@@ -127,8 +127,13 @@ TEST(BufferTest, Ctor) {
struct dying_buffer : test_buffer<int> {
MOCK_METHOD0(die, void());
~dying_buffer() { die(); }
+
+ private:
+ virtual void avoid_weak_vtable();
};
+void dying_buffer::avoid_weak_vtable() {}
+
TEST(BufferTest, VirtualDtor) {
typedef StrictMock<dying_buffer> stict_mock_buffer;
stict_mock_buffer* mock_buffer = new stict_mock_buffer();
diff --git a/test/test-assert.h b/test/test-assert.h
index 034a4ce6..c02dc0f2 100644
--- a/test/test-assert.h
+++ b/test/test-assert.h
@@ -14,8 +14,13 @@
class assertion_failure : public std::logic_error {
public:
explicit assertion_failure(const char* message) : std::logic_error(message) {}
+
+ private:
+ virtual void avoid_weak_vtable();
};
+void assertion_failure::avoid_weak_vtable() {}
+
#define FMT_ASSERT(condition, message) \
if (!(condition)) throw assertion_failure(message);