diff --git a/src/symbols/symbols_with_libdwarf.cpp b/src/symbols/symbols_with_libdwarf.cpp index f8c3568..33952cf 100644 --- a/src/symbols/symbols_with_libdwarf.cpp +++ b/src/symbols/symbols_with_libdwarf.cpp @@ -44,6 +44,8 @@ namespace libdwarf { // .emplace needed, for some reason .insert tries to copy <= gcc 7.2 return resolver_map.emplace(object_name, std::move(resolver_object)).first->second.get(); } else { + // gcc cannot handle the following logic properly in <= gcc 5.1, so the type to be constructed is explicitly specified. + // See also:https://godbolt.org/z/9oWdWjbf8 return maybe_owned{std::move(resolver_object)}; } }