Skip to content

Clang error: destructor called on non-final 'Aws::FileSystem::PosixDirectory' that has virtual functions but non-virtual destructor #825

@yurivict

Description

@yurivict

In the FreeBSD port for the version 1.4.14, on FreeBSD 12 build fails:

/usr/bin/c++  -DAWS_SDK_VERSION_MAJOR=1 -DAWS_SDK_VERSION_MINOR=4 -DAWS_SDK_VERSION_PATCH=14 -DENABLE_CURL_CLIENT -DENABLE_OPENSSL_ENCRYPTION -DPLATFORM_LINUX -Daws_cpp_sdk_core_EXPORTS -I/usr/local/include -Iaws-cpp-sdk-core/include/aws/core/platform/refs -Iaws-cpp-sdk-core/include -Wno-error -Wno-c11-extensions -Wno-error -Wno-c11-extensions -fPIC   -fno-exceptions -std=c++11 -Wall -Werror -pedantic -Wextra -MD -MT aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/platform/linux-shared/FileSystem.cpp.o -MF aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/platform/linux-shared/FileSystem.cpp.o.d -o aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/source/platform/linux-shared/FileSystem.cpp.o -c aws-cpp-sdk-core/source/platform/linux-shared/FileSystem.cpp
In file included from aws-cpp-sdk-core/source/platform/linux-shared/FileSystem.cpp:15:
In file included from aws-cpp-sdk-core/include/aws/core/platform/FileSystem.h:18:
In file included from aws-cpp-sdk-core/include/aws/core/utils/memory/stl/AWSVector.h:20:
In file included from aws-cpp-sdk-core/include/aws/core/utils/memory/stl/AWSAllocator.h:21:
In file included from aws-cpp-sdk-core/include/aws/core/utils/memory/AWSMemory.h:22:
/usr/include/c++/v1/memory:3656:5: error: destructor called on non-final 'Aws::FileSystem::PosixDirectory' that has virtual functions but non-virtual destructor [-Werror,-Wdelete-non-virtual-dtor]
    __data_.second().~_Tp();
    ^
/usr/include/c++/v1/memory:3617:9: note: in instantiation of member function 'std::__1::__shared_ptr_emplace<Aws::FileSystem::PosixDirectory, Aws::Allocator<Aws::FileSystem::PosixDirectory> >::__on_zero_shared' requested here
        __shared_ptr_emplace(_Alloc __a, _Args&& ...__args)
        ^
/usr/include/c++/v1/memory:4297:9: note: in instantiation of function template specialization 'std::__1::__shared_ptr_emplace<Aws::FileSystem::PosixDirectory, Aws::Allocator<Aws::FileSystem::PosixDirectory> >::__shared_ptr_emplace<const std::__1::basic_string<char, std::__1::char_traits<char>, Aws::Allocator<char> > &, const std::__1::basic_string<char, std::__1::char_traits<char>, Aws::Allocator<char> > &>' requested here
        _CntrlBlk(__a, _VSTD::forward<_Args>(__args)...);
        ^
/usr/include/c++/v1/memory:4668:29: note: in instantiation of function template specialization 'std::__1::shared_ptr<Aws::FileSystem::PosixDirectory>::allocate_shared<Aws::Allocator<Aws::FileSystem::PosixDirectory>, const std::__1::basic_string<char, std::__1::char_traits<char>, Aws::Allocator<char> > &, const std::__1::basic_string<char, std::__1::char_traits<char>, Aws::Allocator<char> > &>' requested here
    return shared_ptr<_Tp>::allocate_shared(__a, _VSTD::forward<_Args>(__args)...);
                            ^
aws-cpp-sdk-core/include/aws/core/utils/memory/stl/AWSAllocator.h:106:21: note: in instantiation of function template specialization 'std::__1::allocate_shared<Aws::FileSystem::PosixDirectory, Aws::Allocator<Aws::FileSystem::PosixDirectory>, const std::__1::basic_string<char, std::__1::char_traits<char>, Aws::Allocator<char> > &, const std::__1::basic_string<char, std::__1::char_traits<char>, Aws::Allocator<char> > &>' requested here
        return std::allocate_shared<T, Aws::Allocator<T>>(Aws::Allocator<T>(), std::forward<ArgTypes>(args)...);
                    ^
aws-cpp-sdk-core/source/platform/linux-shared/FileSystem.cpp:273:17: note: in instantiation of function template specialization 'Aws::MakeShared<Aws::FileSystem::PosixDirectory, const std::__1::basic_string<char, std::__1::char_traits<char>, Aws::Allocator<char> > &, const std::__1::basic_string<char, std::__1::char_traits<char>, Aws::Allocator<char> > &>' requested here
    return Aws::MakeShared<PosixDirectory>(FILE_SYSTEM_UTILS_LOG_TAG, path, relativePath);
                ^
/usr/include/c++/v1/memory:3656:23: note: qualify call to silence this warning
    __data_.second().~_Tp();
                      ^
1 error generated.

Here is the full log of the same failure for the previous version: http://package18.nyi.freebsd.org/data/headamd64PR225981-default/2018-02-22_20h38m25s/logs/errors/aws-sdk-cpp-1.3.15.log

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature-requestA feature should be added or improved.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions